@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 public void testPortProperty() { // Create an instance... final AciServerDetails details = new AciServerDetails(); assertThat("port property is not 0", details.getPort(), is(0)); // Set the port to minus out of range... try { details.setPort(-10); fail("Should have thrown an IllegalArgumentException as port is out of range."); } catch (final IllegalArgumentException iae) { // Expected due to out of range port number... } // Set port to positive out of range... try { details.setPort(90000); fail("Should have thrown an IllegalArgumentException as port is out of range."); } catch (final IllegalArgumentException iae) { // Expected due to out of range port number... } // Set the port to a number in range... final int port = 12000; details.setPort(port); assertThat("port property is not as expected", details.getPort(), is(equalTo(port))); }
@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()))); }