public void GET_Given_An_Url_Shortened_Should_Return_Data_Of_The_Url() { //Arrange var url = new Model.Url("http://www.2dsolucoes.net"); var repository = new StubUrlStorage(url); var bootstrapper = new ConfigurableBootstrapper(with => { with.Dependency<IUrlStorage>(repository); }); var browser = new Browser(bootstrapper); //Act var urlAPI = string.Format("/urls/{0}", url.Short); var response = browser.Get(urlAPI, ctx => { ctx.HttpRequest(); }); dynamic result = response.Body.ToDynamic(); //Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); Assert.That((string)result.Source, Is.EqualTo(url.Source)); Assert.That((string)result.Short, Is.EqualTo(url.Short)); }
public void POST_Given_A_Form_No_Parameters_When_Try_Save_A_Short_Url_Then_Returns_StatusCode_400() { //Arrange var repository = new StubUrlStorage(); var bootstrapper = new ConfigurableBootstrapper(with => { with.Dependency<IUrlStorage>(repository); }); var browser = new Browser(bootstrapper); //Act var response = browser.Post("/urls/", ctx => { ctx.HttpRequest(); }); //Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest)); }
public void GET_When_No_Url_Should_Return_StatsuCode_404() { //Arrange var url = new Model.Url("http://www.2dsolucoes.net"); var repository = new StubUrlStorage(url); var bootstrapper = new ConfigurableBootstrapper(with => { with.Dependency<IUrlStorage>(repository); }); var browser = new Browser(bootstrapper); //Act var urlAPI = "/urls/abCD1"; var response = browser.Get(urlAPI, ctx => { ctx.HttpRequest(); }); dynamic result = response.Body.ToDynamic(); //Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound)); }
public void POST_Given_A_Url_Should_Be_Save_A_Short_Url_Associated_With_Original_Url_And_Returns_StatusCode_201_With_Location_Of_The_Resource() { //Arrange var repository = new StubUrlStorage(); var bootstrapper = new ConfigurableBootstrapper(with => { with.Dependency<IUrlStorage>(repository); }); var browser = new Browser(bootstrapper); //Act var response = browser.Post("/urls/", ctx => { ctx.HttpRequest(); ctx.FormValue("url", "http://www.2dsolucoes.net"); }); //Assert Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Created)); Assert.IsNotNullOrEmpty(response.Headers["Location"]); }