public DSPSelfmodifyingResource(provider.ResourceType resourceType) : base(resourceType) { }
public MyDSPInvokableAction(DataServiceOperationContext operationContext, Provider.ServiceAction action, object[] parameters) { this.action = action; this.parameters = parameters; }
public override Provider.IDataServiceInvokable CreateInvokable(DataServiceOperationContext operationContext, Provider.ServiceAction serviceAction, object[] parameterTokens) { return new MyDSPInvokableAction(operationContext, serviceAction, parameterTokens); }
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 object GetRequestDescription(Prov.ResourceType resourceType, object resourceSet, string relativeUri) { // Create the segment info Type segmentInfoType = typeof(Prov.ResourceType).Assembly.GetType("Microsoft.OData.Service.SegmentInfo"); var segmentInfo = Activator.CreateInstance(segmentInfoType, true /*nonPublic*/); segmentInfoType.GetProperty("TargetResourceType", BindingFlags.NonPublic | BindingFlags.Instance).GetSetMethod(true /*nonPublic*/).Invoke(segmentInfo, new object[] { resourceType }); segmentInfoType.GetProperty("TargetResourceSet", BindingFlags.NonPublic | BindingFlags.Instance).GetSetMethod(true /*nonPublic*/).Invoke(segmentInfo, new object[] { resourceSet }); // create segmentInfo array var segmentInfoArray = Array.CreateInstance(segmentInfoType, 1); segmentInfoArray.SetValue(segmentInfo, 0); // Create RequestDescription Type requestDescriptionType = typeof(Prov.ResourceType).Assembly.GetType("Microsoft.OData.Service.RequestDescription"); return Activator.CreateInstance( requestDescriptionType, BindingFlags.NonPublic | BindingFlags.CreateInstance | BindingFlags.Instance, null, new object[] { segmentInfoArray, new Uri(new Uri("http://host", UriKind.Absolute), relativeUri) }, System.Globalization.CultureInfo.InvariantCulture); }
public static void VerifyExceptionForWhere(object service, object resourceSet, Prov.ResourceType resourceType, IQueryable source, params string[] predicates) { foreach (string predicate in predicates) { Trace.WriteLine("Verifying exception is thrown for predicate [" + predicate + "]"); Exception exception = TestUtil.RunCatching(delegate() { InvokeWhere(service, GetRequestDescription(resourceType, resourceSet, predicate), source, predicate); }); TestUtil.AssertExceptionExpected(exception, true); // TestUtil.AssertContainsFalse(exception.ToString(), "binary operator"); TestUtil.AssertContainsFalse(exception.ToString(), "mplemented"); } }