public void CallGetMethod_ParamIsInvalidSummonerName_ThrowsArgumentNullException(
            string summonerName)
        {
            var options = InMemorySQLite.CreateOptions <LeagueContext>();

            using (var context = new LeagueContext(options))
            {
                context.Database.EnsureCreated();
                var controller = new SummonersController(context);

                Assert.Throws <ArgumentException>(() =>
                                                  controller.GetDetails(summonerName));
            }
        }
        public void CallGetMethod_NoParams_DoesNotReturnNull()
        {
            var options = InMemorySQLite.CreateOptions <LeagueContext>();

            using (var context = new LeagueContext(options))
            {
                context.Database.EnsureCreated();
                var controller = new SummonersController(context);

                var result = controller.Get();

                Assert.NotNull(result);
            }
        }
        public void CallGetMethod_ParamIsValidNonExistantSummonerName_ReturnsNotFoundResult(
            string summonerName)
        {
            var options = InMemorySQLite.CreateOptions <LeagueContext>();

            using (var context = new LeagueContext(options))
            {
                context.Database.EnsureCreated();
                var controller = new SummonersController(context);

                var result = controller.GetDetails(summonerName);

                var notFoundResult = result as NotFoundResult;

                Assert.Equal(StatusCodes.Status404NotFound, notFoundResult.StatusCode);
            }
        }
        public void CallGetMethod_ParamIsValidExistingSummonerName_ReturnsOkResult(
            string summonerName)
        {
            var options = InMemorySQLite.CreateOptions <LeagueContext>();

            using (var context = new LeagueContext(options))
            {
                context.Database.EnsureCreated();
                var controller = new SummonersController(context);

                var result = controller
                             .GetDetails(summonerName);

                var okResult = result as OkObjectResult;

                Assert.IsType <SummonerDto>(okResult.Value);
                Assert.Equal(StatusCodes.Status200OK, okResult.StatusCode);
            }
        }