| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you 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 com.cloud.api.query.dao; |
| |
| import static org.junit.Assert.assertEquals; |
| |
| import org.apache.cloudstack.api.BaseResponseWithTagInformation; |
| import org.apache.cloudstack.api.response.ResourceTagResponse; |
| import org.powermock.api.mockito.PowerMockito; |
| |
| import com.cloud.api.ApiDBUtils; |
| import com.cloud.api.query.vo.BaseViewWithTagInformationVO; |
| import com.cloud.server.ResourceTag.ResourceObjectType; |
| |
| public abstract class GenericDaoBaseWithTagInformationBaseTest<T extends BaseViewWithTagInformationVO, |
| Z extends BaseResponseWithTagInformation> { |
| |
| private final static long TAG_ID = 1l; |
| private final static String TAG_KEY = "type"; |
| private final static String TAG_VALUE = "supported"; |
| private final static String TAG_UUID = "aaaa-aaaa-aaaa-aaaa"; |
| private final static ResourceObjectType TAG_RESOURCE_TYPE = ResourceObjectType.Template; |
| private final static String TAG_RESOURCE_TYPE_STR = "Template"; |
| private final static String TAG_RESOURCE_UUID = "aaaa-aaaa-aaaa-aaaa"; |
| private final static long TAG_DOMAIN_ID = 123l; |
| private final static String TAG_DOMAIN_ID_STR = "123"; |
| private final static String TAG_DOMAIN_NAME = "aaaa-aaaa-aaaa-aaaa"; |
| private final static String TAG_CUSTOMER = "aaaa-aaaa-aaaa-aaaa"; |
| private final static String TAG_ACCOUNT_NAME = "admin"; |
| |
| private final static String RESPONSE_OBJECT_NAME = "tag"; |
| |
| public void prepareSetup(){ |
| PowerMockito.spy(ApiDBUtils.class); |
| PowerMockito.stub(PowerMockito.method(ApiDBUtils.class, "newResourceTagResponse")).toReturn(getResourceTagResponse()); |
| } |
| |
| private ResourceTagResponse getResourceTagResponse(){ |
| ResourceTagResponse tagResponse = new ResourceTagResponse(); |
| tagResponse.setKey(TAG_KEY); |
| tagResponse.setValue(TAG_VALUE); |
| tagResponse.setObjectName(RESPONSE_OBJECT_NAME); |
| tagResponse.setResourceType(TAG_RESOURCE_TYPE_STR); |
| tagResponse.setResourceId(TAG_RESOURCE_UUID); |
| tagResponse.setDomainId(TAG_DOMAIN_ID_STR); |
| tagResponse.setDomainName(TAG_DOMAIN_NAME); |
| tagResponse.setCustomer(TAG_CUSTOMER); |
| tagResponse.setAccountName(TAG_ACCOUNT_NAME); |
| return tagResponse; |
| } |
| |
| private void prepareBaseView(long tagId, T baseView){ |
| baseView.setTagId(tagId); |
| baseView.setTagKey(TAG_KEY); |
| baseView.setTagValue(TAG_VALUE); |
| baseView.setTagUuid(TAG_UUID); |
| baseView.setTagResourceType(TAG_RESOURCE_TYPE); |
| baseView.setTagAccountName(TAG_ACCOUNT_NAME); |
| baseView.setTagDomainId(TAG_DOMAIN_ID); |
| baseView.setTagDomainName(TAG_DOMAIN_NAME); |
| baseView.setTagCustomer(TAG_CUSTOMER); |
| baseView.setTagAccountName(TAG_ACCOUNT_NAME); |
| } |
| |
| public void testUpdateTagInformation(GenericDaoBaseWithTagInformation<T, Z> dao, T baseView, Z baseResponse){ |
| prepareBaseView(TAG_ID, baseView); |
| dao.addTagInformation(baseView, baseResponse); |
| ResourceTagResponse[] responseArray = new ResourceTagResponse[baseResponse.getTags().size()]; |
| baseResponse.getTags().toArray(responseArray); |
| assertEquals(1, responseArray.length); |
| assertEquals(TAG_KEY, responseArray[0].getKey()); |
| assertEquals(TAG_VALUE, responseArray[0].getValue()); |
| assertEquals(RESPONSE_OBJECT_NAME, responseArray[0].getObjectName()); |
| } |
| |
| } |