public void When_the_path_is_a_Uri_it_requests_metadata_from_the_cloud() { var metadataPath = Any.UriPath(1); var metadata = Any.String(1); using (var mockService = new MockService() .OnRequest(c => c.Request.Path.ToString() == "/" + metadataPath && c.Request.Method == "GET") .RespondWith((c, b) => c.Response.Write(metadata))) { var metadataUri = mockService.GetBaseAddress() + metadataPath; MetadataResolver.GetMetadata(metadataUri) .Should().Be(metadata); } }
public MockService RespondWith(Action <IOwinContext, string> responseConfiguration) { if (responseConfiguration == null) { throw new ArgumentNullException("responseConfiguration"); } Func <IOwinContext, Task> responseFunction = c => { responseConfiguration(c, _mockService.GetBaseAddress()); return(Task.FromResult <object>(null)); }; _mockService.Setup(_requestValidator, responseFunction); return(_mockService); }
[Fact(Skip = "https://github.com/Microsoft/Vipr/issues/43")] public void When_it_changes_a_namespace_then_responses_odata_type_is_translated_to_new_namespace() { var oldNamespace = _model.EntityContainer.Namespace; var namespacePrefix = Any.CSharpIdentifier(); var namespaceRename = Any.CSharpIdentifier(); var newNamespace = new OdcmNamespace(namespacePrefix + "." + namespaceRename); var namespaceMap = new Dictionary<string, string> { { oldNamespace.Name, namespaceRename } }; var entityClasses = oldNamespace.Classes.OfType<OdcmEntityClass>().ToList(); var baseClass = entityClasses.Where(c => c.Base == null).RandomElement(); entityClasses.Remove(baseClass); baseClass.IsAbstract = true; var derivedClass = entityClasses.RandomElement(); entityClasses.Remove(derivedClass); derivedClass.Base = baseClass; entityClasses.RandomElement().Base = baseClass; var proxy = GetProxyWithChangedNamespaces(namespacePrefix, namespaceMap); var entityArtifacts = GetEntityArtifactsFromNewNamespace(derivedClass, newNamespace, proxy, oldNamespace); var responseObject = entityArtifacts.Class.GetSampleJObject(derivedClass.GetSampleKeyArguments().Concat(baseClass.GetSampleKeyArguments()).ToArray()); var responseOdataType = String.Format("#{0}.{1}", oldNamespace.Name, derivedClass.Name); var singletonPath = baseClass.GetDefaultSingletonPath(); using (var mockService = new MockService(true) ) { mockService .OnRequest(c => c.Request.Method == "GET" && c.Request.Path.Value == singletonPath) .RespondWith( (c, b) => { c.Response.StatusCode = 200; c.Response.WithDefaultODataHeaders(); c.Response.WithODataEntityResponseBody(mockService.GetBaseAddress(), baseClass.GetDefaultEntitySetName(), responseObject, new JProperty("@odata.type", new JValue(responseOdataType))); }); var fetcher = mockService .CreateContainer(proxy.GetClass(newNamespace.Name, _model.EntityContainer.Name)) .GetPropertyValue<RestShallowObjectFetcher>(baseClass.GetDefaultSingletonName()); var task = fetcher.ExecuteAsync(); var result = task.GetPropertyValue<EntityBase>("Result");
private void WithWebMetadata(string metadata, Action<string> action) { var metadataPath = Any.UriPath(1); using (var mockService = new MockService() .OnRequest(c => c.Request.Path.ToString() == "/" + metadataPath && c.Request.Method == "GET") .RespondWith(c => c.Response.Write(metadata))) { action(mockService.GetBaseAddress() + metadataPath); } }