Hi
I have to write test case for this class I am trying to mock all the object but not able to get the full coverage.
can anyone please help me to write the test for this class
import org.apache.sling.api.resource.ResourceResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Helper {
public static List<String> validateResortIdForVideo(List<String> metadataValidatedVideosList,
ResourceResolver resolver, PropertiesConstant vConfig) {
log.info("Enetring validateResortIdForVideo....." + metadataValidatedVideosList);
MetadataValidationHelper metadataValidationHelper = new MetadataValidationHelper();
String migrationSwitch = vConfig.getVIDEO_MIGRATIONSWITCH();// osgi interface
HashMap<String, RDVideoMetaDataVO> metaRDMap = null;
Asset asset = null;
String resortId = null;
String resortName = null;
String cityName = null;
String stateName = null;
String affiliationStatus = null;
String regionHierarchy = null;
Calendar affiliationDate = null;
String resortRentalNetwork = null;
RDVideoMetaDataVO metadataVO = null;
// VideoMoveHelper videoMoveHelper = new VideoMoveHelper();
List<String> pVideosList = new ArrayList<String>();
List<String> eVideoAssetIDList = new ArrayList<String>();
List<Asset> rVideoAssets = new ArrayList<Asset>();
for (String listItem : metadataValidatedVideosList) {
log.info(listItem + " list item ");
rVideoAssets.add(VideoWorkFlowHelper.getAssetByPath(listItem, resolver));
List<Asset> revisedRDVideoAssets = new ArrayList<Asset>();
try {
// Listing RD videos to check further and set metadata accordingly
for (int assetsCnt = 0; assetsCnt < rVideoAssets.size(); assetsCnt++) {
List<String> assetType = MetadataValidationHelper
.getCustomAssetType(rVideoAssets.get(assetsCnt), vConfig, false, resolver);
log.info("revised asset list");
if (assetType.contains(AssetType.ASSET_TYPE_RD)
|| assetType.contains(AssetType.ASSET_TYPE_RD_RCITV)) {
revisedRDVideoAssets.add(rVideoAssets.get(assetsCnt));
}
}
// Listing Resort IDs tagged with video assets
List<String> rdResortIDList = getResortIdListFromAssetList(rVideoAssets, MetadataConstant.RD_RESORTID, resolver);
List<String> tvResortIDList = getResortIdListFromAssetList(rVideoAssets, MetadataConstant.TV_RESORTID, resolver);
List<String> resortIDList = new ArrayList<String>();
resortIDList.addAll(rdResortIDList);
resortIDList.addAll(tvResortIDList);
log.info("resort-id-list" + resortIDList);
// Calling service and storing model against Resort ID List
if (null != resortIDList && !resortIDList.isEmpty()) {
metaRDMap = retrieveMetaDataFromRD(resortIDList, migrationSwitch);
}
if (null != metaRDMap) {
for (int i = 0; i < rVideoAssets.size(); i++) {
asset = rVideoAssets.get(i);
resortId = null;
List<String> assetTypeList = MetadataValidationHelper.getCustomAssetType(asset, vConfig,
false, resolver);
boolean isRDtaggedAsset = false, isRCITVtaggedAsset = false;
if (assetTypeList != null && (assetTypeList.contains(AssetType.ASSET_TYPE_RCITV)
|| assetTypeList.contains(AssetType.ASSET_TYPE_RCI_TV_PREVIEW))) {
isRCITVtaggedAsset = true;
}
if (assetTypeList != null && (assetTypeList.contains(AssetType.ASSET_TYPE_RD)
|| assetTypeList.contains(AssetType.ASSET_TYPE_RD_RCITV))) {
isRDtaggedAsset = true;
}
String rdResortId = VideoWorkFlowHelper.getMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_RESORTID, String.class);
log.debug(rdResortId + "line no 99");
String tvResortId = VideoWorkFlowHelper.getMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.TV_RESORTID, String.class);
log.debug(tvResortId + "line no 104");
boolean tvResortIdFlag = false;
if (null != rdResortId && isRDtaggedAsset) {
resortId = rdResortId;
if (null != tvResortId && isRCITVtaggedAsset) {
resortId = rdResortId + "," + tvResortId;
}
log.info(resortId + "-- line 108");
} else if (null != tvResortId && isRCITVtaggedAsset) {
resortId = tvResortId;
tvResortIdFlag = true;
log.info(resortId + "-- line 113");
}
log.debug("Asset:" + asset.getName() + " is tagged to resorts having ID : " + resortId);
boolean resortMetadataFlag = false;
if (null != resortId && !resortId.isEmpty()) {
StringTokenizer resortIdToken = new StringTokenizer(resortId, ",");
for (int j = 0; resortIdToken.hasMoreTokens(); j++) {
resortId = resortIdToken.nextToken().trim();
log.info(resortId + " line 121");
boolean resortIdFlag = false;
if (null != resortId && !resortId.isEmpty()) {
metadataVO = (RDVideoMetaDataVO) metaRDMap.get(resortId.toLowerCase());
resortIdFlag = true;
}
log.debug("ResortID:" + resortId + " And its metedata: " + metadataVO);
// If video is tagged to any invalid Resort ID : store the video asset in error
// list and error map
if (metadataVO == null && resortIdFlag == true) {
log.debug("Asset:" + asset.getName() + " is not tagged to valid resort(s).");
eVideoAssetIDList.add(asset.getPath());
// ErrorMapBean.setError(asset.getName(),ErrorConstant.VIDEO_INCORRECT_RESORTID
// + resortId);
resortMetadataFlag = false;
log.info("code -- endding");
break;
} else {
log.info("--line 139");
resortMetadataFlag = true;
if (revisedRDVideoAssets.contains(asset)) { /// j==o to do
log.info("--line 142");
resortName = metadataVO.getResortName();
log.info(resortName + "141");
cityName = metadataVO.getCity();
stateName = metadataVO.getStateProvince();
affiliationStatus = metadataVO.getAffiliationStatus();
regionHierarchy = metadataVO.getRegionHierarchy();
}
}
}
log.info("resmetadflag-- " + resortMetadataFlag + " -tv resort flag- " + tvResortIdFlag
+ "=---=" + revisedRDVideoAssets.contains(asset) + "---" + asset + "-- ");
// setting required metadata if video is RD video & tagged to valid resorts only
if (resortMetadataFlag == true && revisedRDVideoAssets.contains(asset)
&& tvResortIdFlag == false) {
log.info("Entering in line no 160 in validation helper");
if (null != resortName && !resortName.isEmpty()) {
VideoWorkFlowHelper.setMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_RESORTNAME, resortName);
}
if (null != cityName && !cityName.isEmpty()) {
VideoWorkFlowHelper.setMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_CITY, cityName);
}
if (null != stateName && !stateName.isEmpty()) {
VideoWorkFlowHelper.setMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_STATE, stateName);
}
if (null != affiliationStatus && !affiliationStatus.isEmpty()) {
VideoWorkFlowHelper.setMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_AFFILIATIONSTATUS, affiliationStatus);
}
if (null != regionHierarchy && !regionHierarchy.isEmpty()) {
VideoWorkFlowHelper.setMetadataPropertyValue(resolver, asset.getPath(),
MetadataConstant.RD_REGIONHIERARCHY, regionHierarchy);
}
}
if (resortMetadataFlag == true && !eVideoAssetIDList.contains(asset.getPath())) {
log.debug(
"Asset:" + asset.getName() + " is validated against all resorts tagged to it.");
pVideosList.add(asset.getPath());
}
} else {
pVideosList.add(asset.getPath());
}
}
} else {
pVideosList = metadataValidatedVideosList;
}
if (eVideoAssetIDList != null && !eVideoAssetIDList.isEmpty()) {
log.info("list of videos moved to error Folder as " + eVideoAssetIDList);
VideoMoveHelper.moveRevisedToTarget(errorVideoAssetIDList,resolver,vConfig,(vConfig.getVIDEO_ERROR_ASSETS()));
}
}
catch (Exception e) {
log.info("Error while validating video assets against ResortID...." + e);
ErrorMapBean.setExceptionHeaderAtValidation("Error while validating video assets against ResortID....");
}
}
return pVideosList;
}
Request you to please provide the sample junits code for above example