public void CanRetrieveSimpleResourceDetails() { using (var host = new InMemoryHost(new SampleApi.Configuration())) { var request = new InMemoryRequest { Uri = new Uri("http://localhost/api-docs/simple"), HttpMethod = "GET", Entity = { ContentType = MediaType.Json } }; request.Entity.Headers["Accept"] = "application/json"; var response = host.ProcessRequest(request); var statusCode = response.StatusCode; Assert.AreEqual(200, statusCode); Assert.IsTrue(response.Entity.ContentLength > 0); response.Entity.Stream.Seek(0, SeekOrigin.Begin); var serializer = new DataContractJsonSerializer(typeof(ResourceDetails)); var resourceDetails = (ResourceDetails)serializer.ReadObject(response.Entity.Stream); Assert.IsNotNull(resourceDetails); } }
public void Create_server_and_issue_a_get_request() { using (var host = new InMemoryHost(new OpenRastaConfiguration())) { var request = new InMemoryRequest() { Uri = new Uri("http://localhost/10000/refData"), HttpMethod = "GET" }; // set up code formats request.Entity.ContentType = MediaType.Json; request.Entity.Headers["Accept"] = "application/json"; // send the request and save the resulting response var response = host.ProcessRequest(request); int statusCode = response.StatusCode; // deserialize the content from the response if (response.Entity.ContentLength > 0) { // rewind the stream, as OpenRasta won't do this response.Entity.Stream.Seek(0, SeekOrigin.Begin); var serializer = new DataContractJsonSerializer(typeof(RefData)); refData = (RefData)serializer.ReadObject(response.Entity.Stream); } } }
private IResponse ProcessRequest(InMemoryHost x) { IResponse response = x.ProcessRequest(BuildRequest()); response.Entity.Stream.Seek(0, SeekOrigin.Begin); return(response); }
public void Ensure_that_error_handling_works_for_put() { // Override the config to give it a broken logger /*var mockLogger = new Mock<ILog>(); * mockLogger.Setup(s => s.Debug(It.Is<string>(m => m.Contains("Entering ConfigHandler")))) * .Throws(new ApplicationException("ha ha!"));*/ _mockFileSystem = (new MockFileSystemProvider()).MockFileSystem; _repository = new DurableMemoryRepository <ConfigRoot>(DataPath, _mockFileSystem.Object); var container = new Container(); container.Configure(x => { x.For <IRepository <IJsonEntity <ConfigRoot> > >().Singleton().Use(_repository); //x.For<ILog>().Singleton().Use(mockLogger.Object); }); _host = new InMemoryHost(new Configuration(container)); var configRoot = new ConfigRoot { ComponentName = "tabOuli", Data = new ConfigNode { Name = "tabouli", Value = "tomatoes", Children = new List <ConfigNode> { new ConfigNode { Name = "Side", Value = "Rice" } } } }; IRequest request = new InMemoryRequest { HttpMethod = "PUT", Uri = new Uri("http://localhost/Config/tacos") }; request.Headers["Content-Type"] = "application/json"; var length = WriteConfigRootToStream(request.Entity.Stream, configRoot); request.Headers["Content-Length"] = length.ToString(CultureInfo.InvariantCulture); var response = _host.ProcessRequest(request); Assert.AreEqual(500, response.StatusCode); }
public IResponse ExecuteRequest(IClientRequest request) { if (request.Entity.Stream.Length > 0) { request.Entity.Stream.Position = 0; } var response = _host.ProcessRequest(request); if (response.StatusCode == 303) { response = RedirectOn303SeeOther(response); } else if (response.StatusCode == 401) { response = RetryWithHttpAuthenticationCredentials(request, response); } if (response.Entity.ContentLength > 0 && response.Entity.Stream.CanSeek) { response.Entity.Stream.Position = 0; } return(response); }
public void Missing_registration_throws_exception() { var container = new Container(); _host = new InMemoryHost(new Configuration(container)); IRequest request = new InMemoryRequest { HttpMethod = "GET", Uri = new Uri("http://localhost/Config/tacos") }; var response = _host.ProcessRequest(request); Assert.AreEqual(500, response.StatusCode); }
protected void when_executing_request(string uri) { _host = new InMemoryHost(_configuration); _host.Resolver.AddDependencyInstance(typeof(caching), this, DependencyLifetime.Singleton); var request = new InMemoryRequest { HttpMethod = _method, Uri = new Uri(new Uri("http://localhost"), new Uri(uri, UriKind.RelativeOrAbsolute)) }; foreach (var kv in _requestHeaders) { request.Headers.Add(kv); } response = _host.ProcessRequest(request); }
protected void when_executing_request(string uri) { _host = new InMemoryHost(_configuration, startup: new StartupProperties() { OpenRasta = { Errors = { HandleAllExceptions = false, HandleCatastrophicExceptions = false } } }); _host.Resolver.AddDependencyInstance(typeof(caching), this, DependencyLifetime.Singleton); var request = new InMemoryRequest { HttpMethod = _method, Uri = new Uri(new Uri("http://localhost"), new Uri(uri, UriKind.RelativeOrAbsolute)) }; foreach (var kv in _requestHeaders) { request.Headers.Add(kv); } response = _host.ProcessRequest(request); }
public void Get_component_list_returns_list() { var entity = _repository.Create(); entity.Contents = new ConfigRoot { ComponentName = "tacos", Data = new ConfigNode { Name = "host", Value = "tortilla" } }; _repository.Add(entity); _repository.Save(); IRequest request = new InMemoryRequest { HttpMethod = "GET", Uri = new Uri("http://localhost/Config") }; var response = _host.ProcessRequest(request); var data = GetStringListFromResponseStream(response.Entity.Stream); Assert.AreEqual(200, response.StatusCode); Assert.AreEqual("tacos", data.ToArray()[0]); }