public void AskJustOncesForTypeTest() { var typesToTest = new Func <DSPMetadata, ResourceType>[] { (metadata) => { var t = metadata.AddEntityType("EntityType", null, null, false); metadata.AddKeyProperty(t, "ID", typeof(int)); return(t); }, (metadata) => metadata.AddComplexType("ComplexType", null, null, false) }; AstoriaTestNS.TestUtil.RunCombinations( typesToTest, (typeCreate) => { var metadataProvider = new CallCountMetadataProvider("Test", "TestNS"); var type = typeCreate(metadataProvider); metadataProvider.SetReadOnly(); var wrapper = new DataServiceMetadataProviderWrapper(metadataProvider); var resourceType = wrapper.TryResolveResourceType(type.FullName); Assert.AreSame(type, resourceType, "The returned type is not the one expected."); wrapper.TryResolveResourceType(type.FullName); wrapper.TryResolveResourceType(type.FullName); Assert.AreEqual(1, metadataProvider.TryResolveResourceTypeCallCount, "The underlying metadata provider should be called just once."); }); }
private static void CreateCallCounterService(out CallCountMetadataProvider metadataProvider, out DSPServiceDefinition service) { metadataProvider = new CallCountMetadataProvider("DefaultContainer", "Default"); var entityType = metadataProvider.AddEntityType("EntityType", null, null, false /*isAbstract*/); metadataProvider.AddKeyProperty(entityType, "ID", typeof(int)); metadataProvider.AddPrimitiveProperty(entityType, "LastUpdatedAuthor", typeof(string), true /*eTag*/); var derivedType = metadataProvider.AddEntityType("DerivedType", null, entityType, false /*isAbstract*/); metadataProvider.AddPrimitiveProperty(derivedType, "LastModifiedAuthor", typeof(string), true /*eTag*/); metadataProvider.AddResourceSet("Customers", entityType); var wrapper = new DataServiceMetadataProviderWrapper(metadataProvider); DSPContext dataContext = new DSPContext(); service = new DSPServiceDefinition() { Metadata = metadataProvider, CreateDataSource = (m) => dataContext, ForceVerboseErrors = true, MediaResourceStorage = new DSPMediaResourceStorage(), SupportNamedStream = true, Writable = true, DataServiceBehavior = new OpenWebDataServiceDefinition.OpenWebDataServiceBehavior() { IncludeRelationshipLinksInResponse = true }, }; }
public void AskJustOncesForServiceOperationTest() { var metadataProvider = new CallCountMetadataProvider("Test", "TestNS"); var serviceOperation = metadataProvider.AddServiceOperation("ServiceOperation", ServiceOperationResultKind.DirectValue, ResourceType.GetPrimitiveResourceType(typeof(string)), null, "GET", new ServiceOperationParameter[0]); metadataProvider.SetReadOnly(); var wrapper = new DataServiceMetadataProviderWrapper(metadataProvider); wrapper.TryResolveServiceOperation(serviceOperation.Name); wrapper.TryResolveServiceOperation(serviceOperation.Name); wrapper.TryResolveServiceOperation(serviceOperation.Name); Assert.AreEqual(1, metadataProvider.TryResolveServiceOperationCallCount, "The underlying metadata provider should be called just once."); }
public void AskJustOncesForResourceSetTest() { var metadataProvider = new CallCountMetadataProvider("Test", "TestNS"); var type = metadataProvider.AddEntityType("Entity", null, null, false); metadataProvider.AddKeyProperty(type, "ID", typeof(int)); var resourceSet = metadataProvider.AddResourceSet("Entities", type); metadataProvider.SetReadOnly(); var wrapper = new DataServiceMetadataProviderWrapper(metadataProvider); wrapper.TryResolveResourceSet(resourceSet.Name); wrapper.TryResolveResourceSet(resourceSet.Name); wrapper.TryResolveResourceSet(resourceSet.Name); Assert.AreEqual(1, metadataProvider.TryResolveResourceSetCallCount, "The underlying metadata provider should be called just once."); }
public void AskJustOncesForTypeTest() { var typesToTest = new Func<DSPMetadata, ResourceType>[] { (metadata) => { var t = metadata.AddEntityType("EntityType", null, null, false); metadata.AddKeyProperty(t, "ID", typeof(int)); return t; }, (metadata) => metadata.AddComplexType("ComplexType", null, null, false) }; AstoriaTestNS.TestUtil.RunCombinations( typesToTest, (typeCreate) => { var metadataProvider = new CallCountMetadataProvider("Test", "TestNS"); var type = typeCreate(metadataProvider); metadataProvider.SetReadOnly(); var wrapper = new DataServiceMetadataProviderWrapper(metadataProvider); var resourceType = wrapper.TryResolveResourceType(type.FullName); Assert.AreSame(type, resourceType, "The returned type is not the one expected."); wrapper.TryResolveResourceType(type.FullName); wrapper.TryResolveResourceType(type.FullName); Assert.AreEqual(1, metadataProvider.TryResolveResourceTypeCallCount, "The underlying metadata provider should be called just once."); }); }