@Test public void testHashCodeMethod() { // Create an instance... final AciServerDetails details1 = new AciServerDetails(); details1.setHost("host1.example.com"); details1.setPort(5790); details1.setCharsetName("UTF-8"); // Create an instance... final AciServerDetails details2 = new AciServerDetails(); details2.setHost("host1.example.com"); details2.setPort(5790); details2.setCharsetName("UTF-8"); // Create yet another instance... final AciServerDetails details3 = new AciServerDetails(); details3.setHost("host2.example.com"); details3.setPort(5790); details3.setCharsetName("UTF-8"); // Assert that 1 & 2 are the same and 1 & 3 and 2 & 3 are different... assertThat("Hash codes should be equal", details1.hashCode() == details2.hashCode(), is(true)); assertThat( "Hash codes should not be equal", details1.hashCode() == details3.hashCode(), is(false)); assertThat( "Hash codes should not be equal", details2.hashCode() == details3.hashCode(), is(false)); details1.setEncryptionCodec(new TestEncryptionCodec()); assertThat(details1.hashCode() == details2.hashCode(), is(false)); details2.setEncryptionCodec(new TestEncryptionCodec()); assertThat(details1.hashCode() == details2.hashCode(), is(true)); }
@Test(expected = IllegalArgumentException.class) public void testHostProperty() { // Create an instance... final AciServerDetails details = new AciServerDetails(); assertThat("host property is not null", details.getHost(), is(nullValue())); // Set the host to something... final String host = "host.example.com"; details.setHost(host); assertThat("host property is not as expected", details.getHost(), is(equalTo(host))); // Set the host to null and check.... details.setHost(null); fail("Should have thrown an IllegalArgumentException as the host has been set to null."); }
@Test public void testEqualsMethod() { // Create an instance... final AciServerDetails details1 = new AciServerDetails(); details1.setHost("host1.example.com"); details1.setPort(5790); details1.setCharsetName("UTF-8"); // Create another instance... final AciServerDetails details2 = new AciServerDetails(); details2.setHost("host2.example.com"); details2.setPort(5790); details2.setCharsetName("UTF-8"); // Compare to itself and the other details... assertThat("Details should be equal to itself", details1.equals(details1), is(true)); assertThat("Details should not be equal", details1.equals(details2), is(false)); // Change details2 to have the same name so tecxhnically they'return the same... details2.setHost("host1.example.com"); assertThat("Details should be equal", details1.equals(details2), is(true)); // Compare it to some random object, it should be false... assertThat("Parameters should be equal", details1.equals(new Object()), is(false)); // Create yet another instance... final AciServerDetails details3 = new AciServerDetails(); details3.setHost("host1.example.com"); details3.setPort(5790); details3.setCharsetName("UTF-8"); details3.setEncryptionCodec(new TestEncryptionCodec()); // Check against details1 which is the same apart from the codec... assertThat("Details should not be equal", details3.equals(details1), is(false)); // Set the same codec on details1, it should now be the same as details3... details1.setEncryptionCodec(new TestEncryptionCodec()); assertThat(details3.equals(details1), is(true)); }
@Test public void testCopyConstructor() { // The codec to use... final TestEncryptionCodec encryptionCodec = new TestEncryptionCodec(); // Create an instance... final AciServerDetails details = new AciServerDetails(); details.setHost("localhost"); details.setPort(12345); details.setEncryptionCodec(encryptionCodec); // Copy... final AciServerDetails newDetails = new AciServerDetails(details); // Check everything was coppied across... assertThat("protocol", newDetails.getProtocol(), is(equalTo(details.getProtocol()))); assertThat("host", newDetails.getHost(), is(equalTo(details.getHost()))); assertThat("port", newDetails.getPort(), is(equalTo(details.getPort()))); assertThat("charsetName", newDetails.getCharsetName(), is(equalTo(details.getCharsetName()))); assertThat( "encryptionCodec", newDetails.getEncryptionCodec(), is(sameInstance(details.getEncryptionCodec()))); }