@Test(groups = "slow", description = "Test Account DAO: custom fields") public void testCustomFields() throws CustomFieldApiException { final UUID accountId = UUID.randomUUID(); final String fieldName = UUID.randomUUID().toString().substring(0, 4); final String fieldValue = UUID.randomUUID().toString(); customFieldDao.create(new CustomFieldModelDao(internalCallContext.getCreatedDate(), fieldName, fieldValue, accountId, ObjectType.ACCOUNT), internalCallContext); final List<CustomFieldModelDao> customFieldMap = customFieldDao.getCustomFieldsForObject(accountId, ObjectType.ACCOUNT, internalCallContext); Assert.assertEquals(customFieldMap.size(), 1); final CustomFieldModelDao customField = customFieldMap.get(0); Assert.assertEquals(customField.getFieldName(), fieldName); Assert.assertEquals(customField.getFieldValue(), fieldValue); }
@Override public void removeCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<UUID> curstomFieldIds = Iterables.transform(customFields, new Function<CustomField, UUID>() { @Override public UUID apply(final CustomField input) { return input.getId(); } }); customFieldDao.deleteCustomFields(curstomFieldIds, internalCallContext); } }
@Override public Pagination<CustomFieldModelDao> build() { return customFieldDao.get(offset, limit, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context)); } },
@Override public List<CustomField> getCustomFieldsForObject(final UUID objectId, final ObjectType objectType, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForObject(objectId, objectType, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context))); }
@Test(groups = "slow") public void testCreateCustomField() throws CustomFieldApiException { final UUID id = UUID.randomUUID(); final ObjectType objectType = ObjectType.ACCOUNT; String fieldName = "TestField1"; String fieldValue = "Kitty Hawk"; eventsListener.pushExpectedEvent(NextEvent.CUSTOM_FIELD); customFieldDao.create(new CustomFieldModelDao(internalCallContext.getCreatedDate(), fieldName, fieldValue, id, objectType), internalCallContext); assertListenerStatus(); fieldName = "TestField2"; fieldValue = "Cape Canaveral"; eventsListener.pushExpectedEvent(NextEvent.CUSTOM_FIELD); customFieldDao.create(new CustomFieldModelDao(internalCallContext.getCreatedDate(), fieldName, fieldValue, id, objectType), internalCallContext); assertListenerStatus(); } }
@Override public Pagination<CustomFieldModelDao> build() { return customFieldDao.searchCustomFields(searchKey, offset, limit, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context)); } },
@Override public List<CustomField> getCustomFieldsForAccount(final UUID accountId, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForAccount(internalCallContextFactory.createInternalTenantContext(accountId, context))); }
@Override public List<AuditLogWithHistory> getCustomFieldAuditLogsWithHistoryForId(final UUID customFieldId, final AuditLevel auditLevel, final TenantContext tenantContext) { return customFieldDao.getCustomFieldAuditLogsWithHistoryForId(customFieldId, auditLevel, internalCallContextFactory.createInternalTenantContext(customFieldId, ObjectType.CUSTOM_FIELD, tenantContext)); }
@Override public void updateCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<CustomFieldModelDao> customFieldIds = Iterables.transform(customFields, new Function<CustomField, CustomFieldModelDao>() { @Override public CustomFieldModelDao apply(final CustomField input) { return new CustomFieldModelDao(input.getId(), internalCallContext.getCreatedDate(), internalCallContext.getUpdatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } }); customFieldDao.updateCustomFields(customFieldIds, internalCallContext); } }
@Override public List<CustomField> getCustomFieldsForAccountType(final UUID accountId, final ObjectType objectType, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForAccountType(objectType, internalCallContextFactory.createInternalTenantContext(accountId, context))); }
@Override public List<CustomField> getCustomFieldsForObject(final UUID objectId, final ObjectType objectType, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForObject(objectId, objectType, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context))); }
@Test(groups = "slow") public void testCreateCustomField() throws CustomFieldApiException { final UUID id = UUID.randomUUID(); final ObjectType objectType = ObjectType.ACCOUNT; String fieldName = "TestField1"; String fieldValue = "Kitty Hawk"; eventsListener.pushExpectedEvent(NextEvent.CUSTOM_FIELD); customFieldDao.create(new CustomFieldModelDao(internalCallContext.getCreatedDate(), fieldName, fieldValue, id, objectType), internalCallContext); assertListenerStatus(); fieldName = "TestField2"; fieldValue = "Cape Canaveral"; eventsListener.pushExpectedEvent(NextEvent.CUSTOM_FIELD); customFieldDao.create(new CustomFieldModelDao(internalCallContext.getCreatedDate(), fieldName, fieldValue, id, objectType), internalCallContext); assertListenerStatus(); } }
@Override public Pagination<CustomFieldModelDao> build() { return customFieldDao.searchCustomFields(searchKey, offset, limit, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context)); } },
@Override public List<CustomField> getCustomFieldsForAccount(final UUID accountId, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForAccount(internalCallContextFactory.createInternalTenantContext(accountId, context))); }
@Override public List<AuditLogWithHistory> getCustomFieldAuditLogsWithHistoryForId(final UUID customFieldId, final AuditLevel auditLevel, final TenantContext tenantContext) { return customFieldDao.getCustomFieldAuditLogsWithHistoryForId(customFieldId, auditLevel, internalCallContextFactory.createInternalTenantContext(customFieldId, ObjectType.CUSTOM_FIELD, tenantContext)); }
@Override public void updateCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<CustomFieldModelDao> customFieldIds = Iterables.transform(customFields, new Function<CustomField, CustomFieldModelDao>() { @Override public CustomFieldModelDao apply(final CustomField input) { return new CustomFieldModelDao(input.getId(), internalCallContext.getCreatedDate(), internalCallContext.getUpdatedDate(), input.getFieldName(), input.getFieldValue(), input.getObjectId(), input.getObjectType()); } }); customFieldDao.updateCustomFields(customFieldIds, internalCallContext); } }
@Override public List<CustomField> getCustomFieldsForAccountType(final UUID accountId, final ObjectType objectType, final TenantContext context) { return withCustomFieldsTransform(customFieldDao.getCustomFieldsForAccountType(objectType, internalCallContextFactory.createInternalTenantContext(accountId, context))); }
@Override public void removeCustomFields(final List<CustomField> customFields, final CallContext context) throws CustomFieldApiException { if (!customFields.isEmpty()) { final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(customFields.get(0).getObjectId(), customFields.get(0).getObjectType(), context); final Iterable<UUID> curstomFieldIds = Iterables.transform(customFields, new Function<CustomField, UUID>() { @Override public UUID apply(final CustomField input) { return input.getId(); } }); customFieldDao.deleteCustomFields(curstomFieldIds, internalCallContext); } }
@Override public Pagination<CustomFieldModelDao> build() { return customFieldDao.get(offset, limit, internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(context)); } },