@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 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 testCharsetNameProperty() { // Create an instance... final AciServerDetails details = new AciServerDetails(); assertThat("charsetName property is not null", details.getCharsetName(), is("UTF-8")); // Set the charsetName to something... final String charsetName = "ISO-8859-1"; details.setCharsetName(charsetName); assertThat( "charsetName property is not as expected", details.getCharsetName(), is(equalTo(charsetName))); // Set the charsetName to null and check.... try { details.setCharsetName(null); fail("Should have thrown an IllegalArgumentException as charsetName is null."); } catch (final IllegalArgumentException iae) { // Expected... } // Set the charsetName to an illegal charset name and check.... try { details.setCharsetName("_~@£$"); fail("Should have thrown an IllegalCharsetNameException as charsetName is illegal."); } catch (final IllegalCharsetNameException icne) { // Expected... } // Set the charsetName to an unsupported charset and check.... try { details.setCharsetName("wibble"); fail("Should have thrown an UnsupportedCharsetException as charsetName is unsupported."); } catch (final UnsupportedCharsetException uce) { // Expected... } }