blob: c7c65f8d935976f1082a4f94b93640c05ae4b46e [file] [log] [blame]
// 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());
}
}