Пример #1
0
        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);
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }