/*
* Copyright 2015 herd contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.finra.herd.service;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.finra.herd.dao.BusinessObjectDataDaoTestHelper;
import org.finra.herd.model.api.xml.BusinessObjectDataAttribute;
import org.finra.herd.model.api.xml.BusinessObjectDataAttributeCreateRequest;
import org.finra.herd.model.api.xml.BusinessObjectDataAttributeKey;
import org.finra.herd.model.api.xml.BusinessObjectDataAttributeUpdateRequest;
@Component
public class BusinessObjectDataAttributeServiceTestHelper
{
@Autowired
private BusinessObjectDataDaoTestHelper businessObjectDataDaoTestHelper;
/**
* Creates a business object data attribute create request.
*
* @return the newly created business object data attribute create request
*/
public BusinessObjectDataAttributeCreateRequest createBusinessObjectDataAttributeCreateRequest(String namespaceCode, String businessObjectDefinitionName,
String businessObjectFormatUsage, String businessObjectFormatFileType, Integer businessObjectFormatVersion, String businessObjectDataPartitionValue,
List<String> businessObjectDataSubPartitionValues, Integer businessObjectDataVersion, String businessObjectDataAttributeName,
String businessObjectDataAttributeValue)
{
BusinessObjectDataAttributeCreateRequest request = new BusinessObjectDataAttributeCreateRequest();
request.setBusinessObjectDataAttributeKey(
new BusinessObjectDataAttributeKey(namespaceCode, businessObjectDefinitionName, businessObjectFormatUsage, businessObjectFormatFileType,
businessObjectFormatVersion, businessObjectDataPartitionValue, businessObjectDataSubPartitionValues, businessObjectDataVersion,
businessObjectDataAttributeName));
request.setBusinessObjectDataAttributeValue(businessObjectDataAttributeValue);
return request;
}
/**
* Creates a business object data attribute update request.
*
* @return the newly created business object data attribute update request
*/
public BusinessObjectDataAttributeUpdateRequest createBusinessObjectDataAttributeUpdateRequest(String businessObjectDataAttributeValue)
{
BusinessObjectDataAttributeUpdateRequest request = new BusinessObjectDataAttributeUpdateRequest();
request.setBusinessObjectDataAttributeValue(businessObjectDataAttributeValue);
return request;
}
/**
* Validates business object data attribute contents against specified arguments.
*
* @param businessObjectDataAttributeId the expected business object data attribute ID
* @param expectedNamespace the expected namespace
* @param expectedBusinessObjectDefinitionName the expected business object definition name
* @param expectedBusinessObjectFormatUsage the expected business object format usage
* @param expectedBusinessObjectFormatFileType the expected business object format file type
* @param expectedBusinessObjectFormatVersion the expected business object format version
* @param expectedBusinessObjectDataPartitionValue the expected partition value
* @param expectedBusinessObjectDataSubPartitionValues the expected subpartition values
* @param expectedBusinessObjectDataVersion the expected business object data version
* @param expectedBusinessObjectDataAttributeName the expected business object data attribute name
* @param expectedBusinessObjectDataAttributeValue the expected business object data attribute value
* @param actualBusinessObjectDataAttribute the business object data attribute object instance to be validated
*/
public void validateBusinessObjectDataAttribute(Integer businessObjectDataAttributeId, String expectedNamespace,
String expectedBusinessObjectDefinitionName, String expectedBusinessObjectFormatUsage, String expectedBusinessObjectFormatFileType,
Integer expectedBusinessObjectFormatVersion, String expectedBusinessObjectDataPartitionValue, List<String> expectedBusinessObjectDataSubPartitionValues,
Integer expectedBusinessObjectDataVersion, String expectedBusinessObjectDataAttributeName, String expectedBusinessObjectDataAttributeValue,
BusinessObjectDataAttribute actualBusinessObjectDataAttribute)
{
assertNotNull(actualBusinessObjectDataAttribute);
if (businessObjectDataAttributeId != null)
{
assertEquals(businessObjectDataAttributeId, Integer.valueOf(actualBusinessObjectDataAttribute.getId()));
}
validateBusinessObjectDataAttributeKey(expectedNamespace, expectedBusinessObjectDefinitionName, expectedBusinessObjectFormatUsage,
expectedBusinessObjectFormatFileType, expectedBusinessObjectFormatVersion, expectedBusinessObjectDataPartitionValue,
expectedBusinessObjectDataSubPartitionValues, expectedBusinessObjectDataVersion, expectedBusinessObjectDataAttributeName,
actualBusinessObjectDataAttribute.getBusinessObjectDataAttributeKey());
assertEquals(expectedBusinessObjectDataAttributeValue, actualBusinessObjectDataAttribute.getBusinessObjectDataAttributeValue());
}
/**
* Validates business object data attribute key against specified arguments.
*
* @param expectedNamespace the expected namespace
* @param expectedBusinessObjectDefinitionName the expected business object definition name
* @param expectedBusinessObjectFormatUsage the expected business object format usage
* @param expectedBusinessObjectFormatFileType the expected business object format file type
* @param expectedBusinessObjectFormatVersion the expected business object format version
* @param expectedBusinessObjectDataPartitionValue the expected partition value
* @param expectedBusinessObjectDataSubPartitionValues the expected subpartition values
* @param expectedBusinessObjectDataVersion the expected business object data version
* @param expectedBusinessObjectDataAttributeName the expected business object data attribute name
* @param actualBusinessObjectDataAttributeKey the business object data attribute key object instance to be validated
*/
public void validateBusinessObjectDataAttributeKey(String expectedNamespace, String expectedBusinessObjectDefinitionName,
String expectedBusinessObjectFormatUsage, String expectedBusinessObjectFormatFileType, Integer expectedBusinessObjectFormatVersion,
String expectedBusinessObjectDataPartitionValue, List<String> expectedBusinessObjectDataSubPartitionValues, Integer expectedBusinessObjectDataVersion,
String expectedBusinessObjectDataAttributeName, BusinessObjectDataAttributeKey actualBusinessObjectDataAttributeKey)
{
assertNotNull(actualBusinessObjectDataAttributeKey);
assertEquals(expectedNamespace, actualBusinessObjectDataAttributeKey.getNamespace());
assertEquals(expectedBusinessObjectDefinitionName, actualBusinessObjectDataAttributeKey.getBusinessObjectDefinitionName());
assertEquals(expectedBusinessObjectFormatUsage, actualBusinessObjectDataAttributeKey.getBusinessObjectFormatUsage());
assertEquals(expectedBusinessObjectFormatFileType, actualBusinessObjectDataAttributeKey.getBusinessObjectFormatFileType());
assertEquals(expectedBusinessObjectFormatVersion, actualBusinessObjectDataAttributeKey.getBusinessObjectFormatVersion());
assertEquals(expectedBusinessObjectDataPartitionValue, actualBusinessObjectDataAttributeKey.getPartitionValue());
assertEquals(expectedBusinessObjectDataSubPartitionValues, actualBusinessObjectDataAttributeKey.getSubPartitionValues());
assertEquals(expectedBusinessObjectDataVersion, actualBusinessObjectDataAttributeKey.getBusinessObjectDataVersion());
assertEquals(expectedBusinessObjectDataAttributeName, actualBusinessObjectDataAttributeKey.getBusinessObjectDataAttributeName());
}
}