예제 #1
0
        public void Index_Success()
        {
            string        json   = @"[{""name"":""Bob"",""gender"":""Male"",""age"":23,""pets"":[{""name"":""Garfield"",""type"":""Cat""},{""name"":""Fido"",""type"":""Dog""}]},{""name"":""Jennifer"",""gender"":""Female"",""age"":18,""pets"":[{""name"":""Garfield"",""type"":""Cat""}]},{""name"":""Steve"",""gender"":""Male"",""age"":45,""pets"":null},{""name"":""Fred"",""gender"":""Male"",""age"":40,""pets"":[{""name"":""Tom"",""type"":""Cat""},{""name"":""Max"",""type"":""Cat""},{""name"":""Sam"",""type"":""Dog""},{""name"":""Jim"",""type"":""Cat""}]},{""name"":""Samantha"",""gender"":""Female"",""age"":40,""pets"":[{""name"":""Tabby"",""type"":""Cat""}]},{""name"":""Alice"",""gender"":""Female"",""age"":64,""pets"":[{""name"":""Simba"",""type"":""Cat""},{""name"":""Nemo"",""type"":""Fish""}]}]";
            List <Person> people = JsonConvert.DeserializeObject <List <Person> >(json);

            var service = new Mock <IPersonService>()
            {
                CallBase = false
            };

            service.Setup(s => s.GetPeople()).Returns(people);

            var          controller          = new CatsController(service.Object);
            ActionResult result              = controller.Index();
            ViewResult   vResult             = result as ViewResult;
            IEnumerable <CatViewModel> model = vResult.Model as IEnumerable <CatViewModel>;


            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.IsInstanceOfType(vResult.Model, typeof(IEnumerable <CatViewModel>));
            Assert.AreEqual(model.Count(), 2);
            Assert.AreEqual(model.ElementAt(0).CatNames.Count(), 4);
            Assert.AreEqual(model.ElementAt(1).CatNames.ElementAt(1), "Simba");
            Assert.AreEqual(model.ElementAt(1).Gender, "Female");
        }
예제 #2
0
        public void Given_NullParameter_Constructor_ShouldThrow_ArgumentNullException()
        {
            // Act
            Action action = () =>
            {
                var catsController = new CatsController(null, null, null, null, null);
            };

            // Assert
            action.Should().Throw <ArgumentNullException>();
        }
        public async Task ControllerWithDbContextTest()
        {
            // Assert
            var data = await GetData();

            var controller = new CatsController(data);

            // Act
            var result = await controller.Get("TestCat");

            // Assert
            Assert.Single("TestCat", result.Value.FirstOrDefault()?.Name);
        }
예제 #4
0
        public void Index()
        {
            // Arrange
            CatsController controller = new CatsController();

            // Act
            NewtonJsonResult result = controller.GetAllCats() as NewtonJsonResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Model);

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
        }
예제 #5
0
        public async Task ShouldReturnListOfCatsByOwnersGender()
        {
            // arrange
            var personLogic    = new Mock <IPersonLogic>();
            var catLogic       = new Mock <ICatLogic>();
            var personDao      = new Mock <IPersonDao>();
            var configuration  = new Mock <IConfiguration>();
            var catsController = new CatsController(personLogic.Object, catLogic.Object);

            personLogic.Setup(p => p.GetPeople()).Returns(Task.FromResult(peopleList));
            personDao.Setup(p => p.GetPeople()).Returns(Task.FromResult(peopleList));

            catLogic.Setup(p => p.GetCatsByOwnerGender(peopleList)).Returns(catsList);

            var cats = await catsController.GetCats();

            // assert
            Assert.AreEqual(catsList, ((OkObjectResult)cats.Result).Value);
        }
예제 #6
0
        public async Task Test1()
        {
            var optionsBuilder = new DbContextOptionsBuilder <MeowtownContext>();

            optionsBuilder.UseInMemoryDatabase("Cats");
            var dbContext  = new MeowtownContext(optionsBuilder.Options);
            var controller = new CatsController(dbContext);

            var cat = new CatInputModel()
            {
                Name = "Piet"
            };

            var result = await controller.PostCat(cat);

            var createdAtActionResult = result.Result as CreatedAtActionResult;
            var resultCat             = createdAtActionResult.Value as Cat;

            Assert.AreEqual(cat.Name, resultCat.Name);
        }
예제 #7
0
        public async Task ShouldReturnNotFoundWhenThereAreNoPeople()
        {
            // arrange
            var personLogic    = new Mock <IPersonLogic>();
            var catLogic       = new Mock <ICatLogic>();
            var personDao      = new Mock <IPersonDao>();
            var configuration  = new Mock <IConfiguration>();
            var catsController = new CatsController(personLogic.Object, catLogic.Object);
            IEnumerable <Person>            emptyPerson = new List <Person>();
            IEnumerable <CatsByOwnerGender> emptyCats   = new List <CatsByOwnerGender>();

            personLogic.Setup(p => p.GetPeople()).Returns(Task.FromResult(emptyPerson));
            personDao.Setup(p => p.GetPeople()).Returns(Task.FromResult(emptyPerson));

            catLogic.Setup(p => p.GetCatsByOwnerGender(peopleList)).Returns(emptyCats);

            var cats = await catsController.GetCats();

            // assert
            Assert.AreEqual(404, ((NotFoundResult)cats.Result).StatusCode);
        }