/*******************************************************************************
*
* Copyright (c) 2011, Oracle Corporation
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*
* Anton Kozak, Nikita Levyankov
*
*
*******************************************************************************/
package org.hudsonci.maven.plugin.builder;
import org.hudsonci.maven.plugin.builder.MavenBuilder;
import java.util.Arrays;
import java.util.Collection;
import org.hudsonci.maven.model.config.BuildConfigurationDTO;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import static org.junit.Assert.assertEquals;
/**
* Verifies the equals and the hashcode of {@link MavenBuilder}.
* <p/>
* Date: 10/5/2011
*
* @author Anton Kozak
*/
@RunWith(Parameterized.class)
public class MavenBuilderEqualsHashCodeTest {
private MavenBuilder builder1;
private MavenBuilder builder2;
private boolean expectedResult;
public MavenBuilderEqualsHashCodeTest(MavenBuilder builder1, MavenBuilder builder2, boolean expectedResult) {
this.builder1 = builder1;
this.builder2 = builder2;
this.expectedResult = expectedResult;
}
@Parameterized.Parameters
public static Collection generateData() {
BuildConfigurationDTO configuration1 = new BuildConfigurationDTO();
configuration1.setGoals("clean install");
BuildConfigurationDTO configuration2 = new BuildConfigurationDTO();
configuration2.setGoals("clean install");
configuration2.setOffline(true);
return Arrays.asList(new Object[][]{
{new MavenBuilder(configuration1), null, false},
{new MavenBuilder(configuration1), new MavenBuilder(new BuildConfigurationDTO()), false},
{new MavenBuilder(configuration1), new MavenBuilder(configuration2), false},
{new MavenBuilder(configuration1), new MavenBuilder(configuration1), true},
{new MavenBuilder(configuration2), new MavenBuilder(configuration2), true}
});
}
@Test
public void testEquals() {
assertEquals(expectedResult, builder1.equals(builder2));
}
@Test
public void testHashCode() {
assertEquals(expectedResult, builder1.hashCode() == (builder2 == null? 0: builder2).hashCode());
}
}