package org.ebayopensource.qajunittests.advertisinguniqueidservicev2consumer.sif.caching; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.ebay.marketplace.v1.services.GetEmployeeDetailsRequest; import com.ebay.marketplace.v1.services.GetPaymentDetailsRequest; import com.ebay.soa.test.user.RegistrationInfoType; import com.ebay.soaframework.common.cachepolicy.CacheContext; import com.ebay.soaframework.common.cachepolicy.CacheKey; import com.ebay.soaframework.common.cachepolicy.CachePolicyDesc; import com.ebay.soaframework.common.cachepolicy.CachePolicyDesc.CachableValueAccessor; import com.ebay.soaframework.common.exceptions.ServiceCreationException; import com.ebay.soaframework.common.exceptions.ServiceException; import com.ebay.soaframework.spf.impl.internal.config.ServiceConfigManager; import com.ebay.soaframework.spf.impl.internal.pipeline.ServerMessageProcessor; import com.ebay.soaframework.spf.impl.internal.service.ServerServiceDesc; import com.ebay.soaframework.spf.impl.internal.service.ServerServiceDescFactory; public class CacheUnitNegative { @Test public void testInvalidOpNameInCachePolicy() throws ServiceException{ GetEmployeeDetailsRequest req = new GetEmployeeDetailsRequest(); req.setId2(1); req.setSsn2(11111111); req.setUserName2("Surya"); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_InvalidOpName"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getEmployeeDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("Invalid operation: getEmployee in cache policy")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testInvalidKeyNameInCachePolicy() throws ServiceException{ GetEmployeeDetailsRequest req = new GetEmployeeDetailsRequest(); req.setId2(1); req.setSsn2(11111111); req.setUserName2("Surya"); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_InvalidKeyName"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getEmployeeDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("Invalid key id in cache policy")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testEmptyTTLInCachePolicy() throws ServiceException{ System.out.println("start testEmptyTTLInCachePolicy"); GetEmployeeDetailsRequest req = new GetEmployeeDetailsRequest(); req.setId2(1); req.setSsn2(11111111); req.setUserName2("Surya"); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_EmptyTTL"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getEmployeeDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("'' is not a valid value for 'integer")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testEmptyKeyValueInCachePolicy() throws ServiceException{ GetEmployeeDetailsRequest req = new GetEmployeeDetailsRequest(); req.setId2(1); req.setSsn2(11111111); req.setUserName2("Surya"); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_EmptyKeyValue"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getEmployeeDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("KeyExpression is empty or null")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testNestedObjectInCachePolicy() throws ServiceException{ GetPaymentDetailsRequest req = new GetPaymentDetailsRequest(); RegistrationInfoType type = new RegistrationInfoType(); type.setEmail("sukoneru@ebay.com"); req.setId1(5); req.setSsn1(222222); req.setRegInfo(type); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_NestedObject"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getPaymentDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("Invalid key regInfo in cache policy")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testListObjectInCachePolicy() throws ServiceException{ System.out.println("test testListObjectInCachePolicy "); GetPaymentDetailsRequest req = new GetPaymentDetailsRequest(); RegistrationInfoType type = new RegistrationInfoType(); type.setEmail("sukoneru@ebay.com"); req.setId1(5); req.setSsn1(222222); req.setRegInfo(type); ServiceConfigManager configManager = ServiceConfigManager.getInstance(); try { configManager.setConfigTestCase("UnitCacheNeg_ListObject"); ServerMessageProcessor.getInstance(); ServerServiceDesc serviceDesc = ServerServiceDescFactory.getInstance().getServiceDesc("SOATestAP1Caching"); CachePolicyDesc desc = serviceDesc.getCachePolicyDesc(); CacheContext context = new CacheContext().setOpName("getPaymentDetails").setRequest(req); CacheKey cacheKey = desc.generateCacheKey(context); Assert.assertTrue(false); } catch(ServiceCreationException e) { Assert.assertTrue(e.getMessage().contains("Invalid key paymentInfo in cache policy")); }catch(Exception e){ Assert.assertTrue(false); } finally { configManager.setConfigTestCase("config"); } } @Test public void testNegative_requestObjectHasAnnotatedMethodOnSetMethod() throws ServiceException{ AnnotateGetItemRequest2 req = new AnnotateGetItemRequest2(); req.setId1(1212); req.setTestItem(9999999); List<String> keyExpressionList = new ArrayList<String>(); keyExpressionList.add("ABC"); try{ CachableValueAccessor cv = CachePolicyDesc.buildAccessorCache(req.getClass(), keyExpressionList); CacheKey key = CachePolicyDesc.generateCacheKey("getPaymentDetails", req, cv); Assert.assertTrue(false); }catch(Exception e){ Assert.assertTrue(e.getMessage().contains("Invalid key ABC in cache policy")); } } }