public void GetTransformerScoreReturnsActionResult_WithAScore()
        {
            Models.DB.Transformer transformer = new Models.DB.Transformer()
            {
                Name             = "Autobot",
                AllegianceTypeId = 1,
                Courage          = 1,
                Endurance        = 1,
                Firepower        = 1,
                Intelligence     = 1,
                Rank             = 1,
                Skill            = 1,
                Speed            = 1,
                Strength         = 1
            };
            int score = transformer.Courage + transformer.Endurance + transformer.Firepower + transformer.Intelligence + transformer.Rank + transformer.Skill + transformer.Speed + transformer.Strength;

            _mockWarsService.Setup(warService => warService.GetScore(1)).ReturnsAsync(transformer.Score).Verifiable();
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.GetScore(1);

            var viewResult = Assert.IsType <Task <ActionResult <int> > >(result).Result;

            Assert.Equal(score, viewResult.Value);
        }
        public void GetTransformerReturns404_WhenTransformerWarsException()
        {
            _mockWarsService.Setup(warService => warService.GetTransformer(123)).Throws(new TransformerWarsException());
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.Get(123);

            Assert.Equal(404, ((Microsoft.AspNetCore.Mvc.NotFoundResult)(result.Result.Result)).StatusCode);
        }
        public void DeleteTransformerReturns_Nothing()
        {
            int id = 1;

            _mockWarsService.Setup(warService => warService.DeleteTransformer(id)).Verifiable();
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.Delete(id);

            Assert.Equal(0, 0);
        }
        public void AddTransformerReturns400_WhenTransformerWarsException()
        {
            TransformerRequest transformerContract = new TransformerRequest();

            transformerContract.Name = "Optimus";

            _mockWarsService.Setup(warService => warService.AddTransformer(transformerContract)).Throws(new TransformerWarsException());
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.Put(transformerContract);

            Assert.Equal(400, ((Microsoft.AspNetCore.Mvc.BadRequestObjectResult)(result.Result.Result)).StatusCode);
        }
        public void GetTransformerReturnsActionResult_WithATransformer()
        {
            Models.DB.Transformer transformer = new Models.DB.Transformer()
            {
                Name = "Autobot"
            };
            _mockWarsService.Setup(warService => warService.GetTransformer(1)).ReturnsAsync(transformer).Verifiable();
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.Get(1);

            var viewResult = Assert.IsType <Task <ActionResult <Transformer> > >(result).Result;

            Assert.Equal(transformer.Name, viewResult.Value.Name);
        }
        public void GetTransformersReturnsActionResult_WithAListOfTransformers()
        {
            List <Models.DB.Transformer> transformers = new List <Models.DB.Transformer>();

            transformers.Add(new Models.DB.Transformer());
            transformers.Add(new Models.DB.Transformer());
            _mockWarsService.Setup(warService => warService.GetTransformers(Models.AllegianceTypes.Autobot)).ReturnsAsync(transformers).Verifiable();
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.GetTeam(Models.AllegianceTypes.Autobot);

            var viewResult = Assert.IsType <Task <ActionResult <IEnumerable <Transformer> > > >(result).Result;

            Assert.Equal(2, viewResult.Value.Count());
        }
        public void AddTransformerReturnsActionResult_WithAddedTransformers()
        {
            TransformerRequest transformerContract = new TransformerRequest();

            transformerContract.Name = "Optimus";

            Models.DB.Transformer transformer = new Transformer();
            transformer.Name = "Optimus";

            _mockWarsService.Setup(warService => warService.AddTransformer(transformerContract)).ReturnsAsync(transformer).Verifiable();
            var controller = new TransformerController(_mockWarsService.Object, _mockLogger.Object);
            var result     = controller.Put(transformerContract);

            var viewResult = Assert.IsType <Task <ActionResult <Transformer> > >(result).Result;

            Assert.Equal(transformerContract.Name, viewResult.Value.Name);
        }