private static void SetUpActionWithLargeParameterPayload(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List <Provider.ServiceActionParameter> parameters = new List <Provider.ServiceActionParameter>(); if (bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } int j = 0; for (int i = 0; i < ActionTestsWithLargePayload.ParameterPayloadSize; ++i) { string pName = "p_int_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(Int32)))); pName = "p_string_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(string)))); pName = "p_double_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(double)))); pName = "p_datetimeoffset_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(DateTimeOffset)))); pName = "p_complex_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, ActionTestsWithLargePayload.ComplexType)); } actionProvider.AddAction("ActionWithLargeParameterPayload", null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); }
private static void SetUpActionWithLargeCollectionParameterPayload(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List <Provider.ServiceActionParameter> parameters = new List <Provider.ServiceActionParameter>(); if (bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } parameters.Add(new Provider.ServiceActionParameter("collectionParameter", Provider.ResourceType.GetCollectionResourceType(Provider.ResourceType.GetPrimitiveResourceType(typeof(string))))); actionProvider.AddAction("ActionWithLargeCollectionParameterPayload", null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); }
private static void SetupLargeNumberOfActions(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List <Provider.ServiceActionParameter> parameters = new List <Provider.ServiceActionParameter>(); if (bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } for (int i = 0; i < NumberOfActions; ++i) { actionProvider.AddAction("Action_" + i, null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); } }
private static void RunPositiveTest(ODataFormat format, TestCase testCase) { MyDSPActionProvider actionProvider = new MyDSPActionProvider(); DSPServiceDefinition service = new DSPServiceDefinition() { Metadata = Metadata, CreateDataSource = CreateDataSource, ActionProvider = actionProvider }; service.DataServiceBehavior.MaxProtocolVersion = ODataProtocolVersion.V4; using (TestWebRequest request = service.CreateForInProcessWcf()) { request.StartService(); DataServiceContext ctx = new DataServiceContext(request.ServiceRoot, ODataProtocolVersion.V4); //ctx.EnableAtom = true; Uri uri = new Uri(request.ServiceRoot + "/" + testCase.RequestUriString); MakeFinalChangesToTestCase(testCase, format, actionProvider, request); if (format == ODataFormat.Json) { JsonLightTestUtil.ConfigureContextForJsonLight(ctx, null); } else { //ctx.Format.UseAtom(); } QueryOperationResponse <CustomerEntity> qor = (QueryOperationResponse <CustomerEntity>)ctx.Execute <CustomerEntity>(uri); Assert.IsNotNull(qor); Assert.IsNull(qor.Error); IEnumerator <CustomerEntity> entities = qor.GetEnumerator(); int expectedDescriptorsPerEntity = 0; while (entities.MoveNext()) { CustomerEntity c = entities.Current; EntityDescriptor ed = ctx.GetEntityDescriptor(c); IEnumerable <OperationDescriptor> actualDescriptors = ed.OperationDescriptors; TestEquality(actualDescriptors, testCase.GetExpectedDescriptors(format)[expectedDescriptorsPerEntity++]); } } }
private static DSPServiceDefinition SetupService() { DSPMetadata metadata = new DSPMetadata("ActionsWithLargePayload", "AstoriaUnitTests.ActionTestsWithLargePayload"); var customer = metadata.AddEntityType("Customer", null, null, false); metadata.AddKeyProperty(customer, "ID", typeof(int)); var customers = metadata.AddResourceSet("Customers", customer); ComplexType = metadata.AddComplexType("AddressComplexType", null, null, false); metadata.AddPrimitiveProperty(ComplexType, "ZipCode", typeof(int)); metadata.AddPrimitiveProperty(ComplexType, "City", typeof(string)); DSPContext context = new DSPContext(); metadata.SetReadOnly(); DSPResource customer1 = new DSPResource(customer); customer1.SetValue("ID", 1); context.GetResourceSetEntities("Customers").Add(customer1); MyDSPActionProvider actionProvider = new MyDSPActionProvider(); SetUpActionWithLargeParameterPayload(actionProvider, metadata, customer); SetUpActionWithLargeCollectionParameterPayload(actionProvider, metadata, customer); SetupLargeNumberOfActions(actionProvider, metadata, customer); DSPServiceDefinition service = new DSPServiceDefinition() { Metadata = metadata, CreateDataSource = (m) => context, ForceVerboseErrors = true, Writable = true, ActionProvider = actionProvider, }; return(service); }
/// <summary> /// Make final changes to the testcase before sending the request. /// </summary> private static void MakeFinalChangesToTestCase(TestCase testCase, ODataFormat format, MyDSPActionProvider actionProvider, TestWebRequest request) { foreach (var action in testCase.Operations) { actionProvider.AddAction((ServiceAction)action); } testCase.AddBaseUriStringToExpectedDescriptors(request.ServiceRoot.OriginalString, format); if (testCase.SubstituteAdvertiseServiceAction != null) { actionProvider.SubstituteAdvertiseServiceAction = testCase.SubstituteAdvertiseServiceAction; } }
private static DSPServiceDefinition SetupService() { DSPMetadata metadata = new DSPMetadata("ActionsWithLargePayload", "AstoriaUnitTests.ActionTestsWithLargePayload"); var customer = metadata.AddEntityType("Customer", null, null, false); metadata.AddKeyProperty(customer, "ID", typeof(int)); var customers = metadata.AddResourceSet("Customers", customer); ComplexType = metadata.AddComplexType("AddressComplexType", null, null, false); metadata.AddPrimitiveProperty(ComplexType, "ZipCode", typeof(int)); metadata.AddPrimitiveProperty(ComplexType, "City", typeof(string)); DSPContext context = new DSPContext(); metadata.SetReadOnly(); DSPResource customer1 = new DSPResource(customer); customer1.SetValue("ID", 1); context.GetResourceSetEntities("Customers").Add(customer1); MyDSPActionProvider actionProvider = new MyDSPActionProvider(); SetUpActionWithLargeParameterPayload(actionProvider, metadata, customer); SetUpActionWithLargeCollectionParameterPayload(actionProvider, metadata, customer); SetupLargeNumberOfActions(actionProvider, metadata, customer); DSPServiceDefinition service = new DSPServiceDefinition() { Metadata = metadata, CreateDataSource = (m) => context, ForceVerboseErrors = true, Writable = true, ActionProvider = actionProvider, }; return service; }
private static void SetUpActionWithLargeParameterPayload(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List<Provider.ServiceActionParameter> parameters = new List<Provider.ServiceActionParameter>(); if(bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } int j = 0; for (int i = 0; i < ActionTestsWithLargePayload.ParameterPayloadSize; ++i) { string pName = "p_int_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(Int32)))); pName = "p_string_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(string)))); pName = "p_double_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(double)))); pName = "p_datetimeoffset_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, Provider.ResourceType.GetPrimitiveResourceType(typeof(DateTimeOffset)))); pName = "p_complex_" + j++; parameters.Add(new Provider.ServiceActionParameter(pName, ActionTestsWithLargePayload.ComplexType)); } actionProvider.AddAction("ActionWithLargeParameterPayload", null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); }
private static void SetupLargeNumberOfActions(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List<Provider.ServiceActionParameter> parameters = new List<Provider.ServiceActionParameter>(); if (bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } for (int i = 0; i < NumberOfActions; ++i) { actionProvider.AddAction("Action_" + i, null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); } }
private static void SetUpActionWithLargeCollectionParameterPayload(MyDSPActionProvider actionProvider, Provider.IDataServiceMetadataProvider metadata, Provider.ResourceType bindingParameterType) { List<Provider.ServiceActionParameter> parameters = new List<Provider.ServiceActionParameter>(); if (bindingParameterType != null) { parameters.Add(new Provider.ServiceActionParameter("bindingParam", bindingParameterType)); } parameters.Add(new Provider.ServiceActionParameter("collectionParameter", Provider.ResourceType.GetCollectionResourceType(Provider.ResourceType.GetPrimitiveResourceType(typeof(string))))); actionProvider.AddAction("ActionWithLargeCollectionParameterPayload", null, null, parameters, Provider.OperationParameterBindingKind.Sometimes, null, null); }
private static void RunPositiveTest(ODataFormat format, TestCase testCase) { MyDSPActionProvider actionProvider = new MyDSPActionProvider(); DSPServiceDefinition service = new DSPServiceDefinition() {Metadata = Metadata, CreateDataSource = CreateDataSource, ActionProvider = actionProvider}; service.DataServiceBehavior.MaxProtocolVersion = ODataProtocolVersion.V4; using (TestWebRequest request = service.CreateForInProcessWcf()) { request.StartService(); DataServiceContext ctx = new DataServiceContext(request.ServiceRoot, ODataProtocolVersion.V4); ctx.EnableAtom = true; Uri uri = new Uri(request.ServiceRoot + "/" + testCase.RequestUriString); MakeFinalChangesToTestCase(testCase, format, actionProvider, request); if (format == ODataFormat.Json) { JsonLightTestUtil.ConfigureContextForJsonLight(ctx, null); } else { ctx.Format.UseAtom(); } QueryOperationResponse<CustomerEntity> qor = (QueryOperationResponse<CustomerEntity>)ctx.Execute<CustomerEntity>(uri); Assert.IsNotNull(qor); Assert.IsNull(qor.Error); IEnumerator<CustomerEntity> entities = qor.GetEnumerator(); int expectedDescriptorsPerEntity = 0; while (entities.MoveNext()) { CustomerEntity c = entities.Current; EntityDescriptor ed = ctx.GetEntityDescriptor(c); IEnumerable<OperationDescriptor> actualDescriptors = ed.OperationDescriptors; TestEquality(actualDescriptors, testCase.GetExpectedDescriptors(format)[expectedDescriptorsPerEntity++]); } } }