@Override public BusinessAccountFieldModelDao map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException { final UUID accountId = UUID.fromString(r.getString(1)); final String accountKey = r.getString(2); final String name = r.getString(3); final String value = r.getString(4); return new BusinessAccountFieldModelDao(accountId, accountKey, name, value); } }
@Override public int hashCode() { int result = accountId != null ? accountId.hashCode() : 0; result = 31 * result + (accountKey != null ? accountKey.hashCode() : 0); result = 31 * result + (getName() != null ? getName().hashCode() : 0); result = 31 * result + (getValue() != null ? getValue().hashCode() : 0); return result; } }
@Test(groups = "fast") public void testEquals() throws Exception { final UUID accountId = UUID.randomUUID(); final String accountKey = UUID.randomUUID().toString(); final String name = UUID.randomUUID().toString(); final String value = UUID.randomUUID().toString(); final BusinessAccountFieldModelDao accountField = new BusinessAccountFieldModelDao(accountId, accountKey, name, value); Assert.assertSame(accountField, accountField); Assert.assertEquals(accountField, accountField); Assert.assertTrue(accountField.equals(accountField)); Assert.assertEquals(accountField.getAccountId(), accountId); Assert.assertEquals(accountField.getAccountKey(), accountKey); Assert.assertEquals(accountField.getName(), name); Assert.assertEquals(accountField.getValue(), value); final BusinessAccountFieldModelDao otherAccountField = new BusinessAccountFieldModelDao(UUID.randomUUID(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), UUID.randomUUID().toString()); Assert.assertFalse(accountField.equals(otherAccountField)); } }
@Test(groups = "slow") public void testCRUD() throws Exception { final UUID accountId = UUID.randomUUID(); final String accountKey = UUID.randomUUID().toString(); final String name = UUID.randomUUID().toString().substring(0, 30); final String value = UUID.randomUUID().toString(); // Verify initial state Assert.assertEquals(accountFieldSqlDao.getFieldsForAccountByKey(accountKey, internalCallContext).size(), 0); Assert.assertEquals(accountFieldSqlDao.removeField(accountId.toString(), name, internalCallContext), 0); // Add an entry Assert.assertEquals(accountFieldSqlDao.addField(accountId.toString(), accountKey, name, value, internalCallContext), 1); final List<BusinessAccountFieldModelDao> fieldsForAccount = accountFieldSqlDao.getFieldsForAccountByKey(accountKey, internalCallContext); Assert.assertEquals(fieldsForAccount.size(), 1); // Retrieve it final BusinessAccountFieldModelDao accountField = fieldsForAccount.get(0); Assert.assertEquals(accountField.getAccountId(), accountId); Assert.assertEquals(accountField.getAccountKey(), accountKey); Assert.assertEquals(accountField.getName(), name); Assert.assertEquals(accountField.getValue(), value); // Delete it Assert.assertEquals(accountFieldSqlDao.removeField(accountId.toString(), name, internalCallContext), 1); Assert.assertEquals(accountFieldSqlDao.getFieldsForAccountByKey(accountKey, internalCallContext).size(), 0); }
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final BusinessAccountFieldModelDao that = (BusinessAccountFieldModelDao) o; if (accountId != null ? !accountId.equals(that.accountId) : that.accountId != null) { return false; } if (accountKey != null ? !accountKey.equals(that.accountKey) : that.accountKey != null) { return false; } if (getName() != null ? !getName().equals(that.getName()) : that.getName() != null) { return false; } if (getValue() != null ? !getValue().equals(that.getValue()) : that.getValue() != null) { return false; } return true; }
@Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("BusinessAccountFieldModelDao"); sb.append("{accountId='").append(accountId).append('\''); sb.append(", accountKey='").append(accountKey).append('\''); sb.append(", name='").append(getName()).append('\''); sb.append(", value='").append(getValue()).append('\''); sb.append('}'); return sb.toString(); }