/** * Copyright 2008-2016 Qualogy Solutions B.V. * * 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 test.com.qualogy.qafe.business.integration.rdb; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Ignore; import com.qualogy.qafe.business.test.BusinessActionTestCase; import com.qualogy.qafe.core.datastore.CacheHandler; import com.qualogy.qafe.core.datastore.DataStore; @Ignore public class RDBServiceProcessorTest extends BusinessActionTestCase { private static final String APP_ID = "RPTest1"; private static final String SERVICE_ID = "databaseService"; @Override protected String[] getSetupActions() { return new String[]{"setup"}; } @Override protected String[] getTearDownActions() { return new String[]{"teardown"}; } public void testGetUsersOrderdById()throws Exception{ manage("getUsersOrderdById"); assertEquals(10, ((List)DataStore.getValue(dataId, "user")).size()); } public void testGetUsersById()throws Exception{ DataStore.store(dataId, "id", new Integer(8)); manage("getUsersById"); assertEquals("marc8", ((Map)DataStore.getValue(dataId, "outcome[0]")).get("name")); } public void testGetUsersByIdWhileIdNotSet()throws Exception{ DataStore.clear(dataId); manage("getUsersById"); //assertEquals("marc8", ((Map)DataStore.getValue(dataId, "outcome[0]")).get("name")); DataStore.toLogString(dataId); assertEquals(10, ((List)DataStore.getValue(dataId, "outcome")).size()); } public void testGetUsersDataSorted()throws Exception { DataStore.store(dataId, "$SORT_COLUMN", "name"); DataStore.store(dataId, "$SORT_ORDER", "desc"); manage("getUsersDataSorted"); assertEquals(10, ((List)DataStore.getValue(dataId, "outcome")).size()); assertEquals("8", ((Map)DataStore.getValue(dataId, "outcome[0]")).get("id")); assertEquals("0", ((Map)DataStore.getValue(dataId, "outcome[9]")).get("id")); } public void testCacheFirstTimeCall()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_justsomething"; String cachedValue = "cachedValue"; CacheHandler.getInstance().store(cacheKey, cachedValue); manage(methodId); assertNotSame(cachedValue, DataStore.getValue(dataId, "outcome")); assertEquals("marc", ((Map)DataStore.getValue(dataId, "outcome[0]")).get("name")); } public void testCacheWithoutInputs()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_"; String cachedValue = "cachedValue"; CacheHandler.getInstance().store(cacheKey, cachedValue); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); } public void testCacheWithInputs()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_id=myId_$$_"; String cachedValue = "cachedValueWithInput"; CacheHandler.getInstance().store(cacheKey, cachedValue); DataStore.store(dataId, "id", "myId"); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); CacheHandler.getInstance().remove(cacheKey); } public void testCacheExpired()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_id=myId_$$_"; String cachedValue = "cachedValueWithInput"; CacheHandler.getInstance().store(cacheKey, cachedValue); Thread.sleep(7000); DataStore.store(dataId, "id", "myId"); manage(methodId); assertNotSame(cachedValue, DataStore.getValue(dataId, "outcome")); assertEquals("marc", ((Map)DataStore.getValue(dataId, "outcome[0]")).get("name")); CacheHandler.getInstance().remove(cacheKey); } public void testCacheWithMultipleInputs()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_id=myId_$$_details=myDetails_$$_"; String cachedValue = "cachedValueWithInput"; CacheHandler.getInstance().store(cacheKey, cachedValue); DataStore.store(dataId, "id", "myId"); DataStore.store(dataId, "details", "myDetails"); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); DataStore.clear(dataId); DataStore.store(dataId, "id", "myId"); DataStore.store(dataId, "name", "myDetails"); manage(methodId); assertNotSame(cachedValue, DataStore.getValue(dataId, "outcome")); CacheHandler.getInstance().remove(cacheKey); } public void testCacheWithMapInput()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_details={id=123, name=myname}_$$_"; String cachedValue = "cachedValueWithInput"; CacheHandler.getInstance().store(cacheKey, cachedValue); Map map = new HashMap<String, String>(); map.put("id", "123"); map.put("name", "myname"); DataStore.store(dataId, "details", map); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); CacheHandler.getInstance().remove(cacheKey); } public void testCacheWithListOfMapInput()throws Exception { String methodId = "testCache"; String cacheKey = "RPTest2_$$_databaseService_$$_testCache_$$_details=[{id=123, name=myname}, {id=123, name=myname}]_$$_"; String cachedValue = "cachedValueWithInput"; CacheHandler.getInstance().store(cacheKey, cachedValue); List<Map> details = new ArrayList(); Map map = new HashMap<String, String>(); map.put("id", "123"); map.put("name", "myname"); Map map2 = new HashMap<String, String>(); map2.put("id", "123"); map2.put("name", "myname"); details.add(map); details.add(map2); DataStore.store(dataId, "details", details); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); CacheHandler.getInstance().remove(cacheKey); } //no caching public void testCacheWithNegativeValue()throws Exception { String methodId = "testCacheWithNegativeValue"; manage(methodId); String cacheKey = "RPTest2_$$_databaseService_$$_testCacheWithNegativeValue_$$_"; assertFalse(CacheHandler.getInstance().contains(cacheKey)); CacheHandler.getInstance().remove(cacheKey); } //unlimited caching public void testCacheWithZero()throws Exception { String methodId = "testCacheWithZero"; manage(methodId); String cacheKey = "RPTest2_$$_databaseService_$$_testCacheWithZero_$$_"; Thread.sleep(8000); assertTrue(CacheHandler.getInstance().contains(cacheKey)); List data = (List) CacheHandler.getInstance().retrieve(cacheKey); assertEquals("marc", ((Map)data.get(0)).get("name")); CacheHandler.getInstance().remove(cacheKey); } //unlimited caching public void testCacheWithZeroDatStored()throws Exception { String methodId = "testCacheWithZero"; String cacheKey = "RPTest2_$$_databaseService_$$_testCacheWithZero_$$_"; String cachedValue = "cachedValuetest"; CacheHandler.getInstance().store(cacheKey, cachedValue); Thread.sleep(8000); manage(methodId); assertEquals(cachedValue, DataStore.getValue(dataId, "outcome")); CacheHandler.getInstance().remove(cacheKey); } @Override public String getAppContextDir() { return getDirBasedUponPackage(); } }