public async Task When_HeroFightsWithVillain_AndHasWeaknessAgaintsThatVillain() { var charactersProvider = new FakeCharactersProvider(); var startup = new WebHostBuilder() .UseStartup <Startup>() .ConfigureServices(x => { x.AddSingleton <ICharactersProvider>(charactersProvider); }); var testServer = new TestServer(startup); var client = testServer.CreateClient(); charactersProvider.FakeResponse(new CharactersResponse { Items = new[] { new CharacterResponse { Name = "Batman", Score = 8.3, Type = "hero", Weakness = "Joker" }, new CharacterResponse { Name = "Joker", Score = 8.2, Type = "villain" } } }); var response = await client.GetAsync("battle?hero=Batman&villain=Joker"); response.StatusCode.Should().Be(HttpStatusCode.OK); var responseJson = await response.Content.ReadAsStringAsync(); var responseObject = JsonConvert.DeserializeObject <JObject>(responseJson); responseObject.Value <string>("name").Should().Be("Joker"); }
public BattleRequestHandlerShould() { _validator = new BattleRequestValidator(); _characterProvider = new FakeCharactersProvider(); _characterProvider.FakeResponse(new List <Character> { new Character { Name = "Batman", Score = 8.3, Type = "hero", Weakness = "Joker" }, new Character { Name = "Joker", Score = 8.2, Type = "villain", Weakness = null }, new Character { Name = "Superman", Score = 9.9, Type = "hero", Weakness = "Lex Luthor" }, new Character { Name = "Lex Luthor", Score = 8.6, Type = "villain", Weakness = null } }); _battleHandler = new BattleRequestHandler(_validator, _characterProvider); }
public async void When_heroCharacterdoesnotexists_and_villain_exists_should_return_badRequest() { var charactersProvider = new FakeCharactersProvider(); var startup = new WebHostBuilder() .UseStartup <Startup>() .ConfigureServices(x => { x.AddSingleton <ICharactersProvider>(charactersProvider); }); var testServer = new TestServer(startup); var client = testServer.CreateClient(); charactersProvider.FakeResponse(new CharactersResponse { Items = new[] { new CharacterResponse { Name = "Batman", Score = 8.3, Type = "hero" }, new CharacterResponse { Name = "Joker", Score = 8.2, Type = "villain" } } }); var response = await client.GetAsync("battle?hero=superman&villain=Joker"); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async void When_WeDonotHave_Hero_and_Villain_ShouldReturn404() { var charactersProvider = new FakeCharactersProvider(); var startup = new WebHostBuilder() .UseStartup <Startup>() .ConfigureServices(x => { x.AddSingleton <ICharactersProvider>(charactersProvider); }); var testServer = new TestServer(startup); var client = testServer.CreateClient(); charactersProvider.FakeResponse(new CharactersResponse { Items = new[] { new CharacterResponse { Name = "Batman", Score = 8.3, Type = "hero" }, new CharacterResponse { Name = "Joker", Score = 8.2, Type = "villain" } } }); var response = await client.GetAsync("battle?hero=superman&villain=testVillain"); response.StatusCode.Should().Be(HttpStatusCode.NotFound); }