Beispiel #1
0
        public void DetailsReturnType()
        {
            DogsController controller = new DogsController();
            var            actual     = controller.Details("hound");

            Assert.IsInstanceOfType(actual, typeof(Task <ActionResult>));
        }
Beispiel #2
0
        public void MissingReturnType()
        {
            DogsController controller = new DogsController();
            var            actual     = controller.Missing();

            Assert.IsInstanceOfType(actual, typeof(ActionResult));
        }
Beispiel #3
0
        public void BreedListReturnType()
        {
            DogsController controller = new DogsController();
            var            actual     = controller.Index();

            Assert.IsInstanceOfType(actual, typeof(Task <ActionResult>));
        }
        public void DogControllerEditDogTest()
        {
            // Arrange
            var dogController = new DogsController();

            dogController.Clear();

            Dog addDog1                   = new Dog("bulldog", "Some Description");
            Dog addDog2                   = new Dog("sheepdog", "Some Description");
            Dog editDogName               = new Dog("bulldog_edited", "Some Description");
            Dog editDogDescription        = new Dog("bulldog_edited", "Some Description Edited");
            Dog editDogNameAndDescription = new Dog("bulldog_edited_2", "Some Description Edited Twice");
            Dog editInvalidDogName        = new Dog("sheepdog", "Some Description");
            Dog editDogWithNoDetails      = new Dog();
            Dog editDogWithNoDescription  = new Dog()
            {
                Name = "sheepdog"
            };

            var addDog1Result                   = dogController.AddDog(addDog1);
            var addDog2Result                   = dogController.AddDog(addDog2);
            var editDogNameResult               = dogController.EditDog("bulldog", editDogName);
            var editDogDescriptionResult        = dogController.EditDog("bulldog_edited", editDogDescription);
            var editDogNameAndDescriptionResult = dogController.EditDog("bulldog_edited", editDogNameAndDescription);
            var editInvalidDogNameResult        = dogController.EditDog("bulldog_edited_2", editInvalidDogName);
            var editDogNoDetatilsResult         = dogController.EditDog("sheepdog", editDogWithNoDetails);
            var editDogWithNoDescriptionResult  = dogController.EditDog("sheepdog", editDogWithNoDescription);

            var dogCollectionResult = dogController.GetAllDogs();
            var okObjectResult      = dogCollectionResult as OkObjectResult;

            Dictionary <string, Dog> dogCollection = okObjectResult.Value as Dictionary <string, Dog>;

            Dog editedDog = dogCollection[editDogWithNoDescription.Name];

            // Assert
            Assert.AreEqual(typeof(OkResult), addDog1Result.GetType());
            Assert.AreEqual(typeof(OkResult), addDog2Result.GetType());
            Assert.AreEqual(typeof(OkResult), editDogNameResult.GetType());
            Assert.AreEqual(typeof(OkResult), editDogDescriptionResult.GetType());
            Assert.AreEqual(typeof(OkResult), editDogNameAndDescriptionResult.GetType());
            Assert.AreEqual(typeof(BadRequestResult), editInvalidDogNameResult.GetType());
            Assert.AreEqual(typeof(BadRequestResult), editDogNoDetatilsResult.GetType());
            Assert.AreEqual(typeof(OkResult), editDogWithNoDescriptionResult.GetType());

            Assert.AreEqual(typeof(OkObjectResult), dogCollectionResult.GetType());

            Assert.IsTrue(dogCollection.ContainsKey(editDogNameAndDescription.Name));
            Assert.IsTrue(dogCollection.ContainsKey(editDogWithNoDescription.Name));

            Assert.IsFalse(dogCollection.ContainsValue(addDog1));
            Assert.IsFalse(dogCollection.ContainsValue(addDog2));
            Assert.IsFalse(dogCollection.ContainsValue(editDogName));
            Assert.IsFalse(dogCollection.ContainsValue(editDogDescription));
            Assert.IsFalse(dogCollection.ContainsValue(editInvalidDogName));
            Assert.IsFalse(dogCollection.ContainsValue(editDogWithNoDetails));

            Assert.IsTrue(editedDog.Description.Equals("No Description."));
        }
Beispiel #5
0
            public void Index_ReturnsCorrectView_True()
            {
                //Arrange
                DogsController controller = new DogsController();

                //Act
                ActionResult indexView = controller.Index();

                //Assert
                Assert.IsInstanceOfType(indexView, typeof(ViewResult));
            }
Beispiel #6
0
            public void Create_ReturnsCorrectActionType_RedirectToActionResult()
            {
                //Arrange
                DogsController controller = new DogsController();

                //Act
                IActionResult view = controller.Create("puppy", "photo", "sex", "string breed", "string color", "string size", "string age", true, true, "string activity", true, true, true, true, true, "string needsDescription");

                //Assert

                Assert.IsInstanceOfType(view, typeof(RedirectToActionResult));
            }
Beispiel #7
0
            public void Index_HasCorrectModelType_DogList()
            {
                //Arrange
                DogsController controller = new DogsController();
                ViewResult     indexView  = controller.Index() as ViewResult;

                //Act
                var result = indexView.ViewData.Model;

                //Assert
                Assert.IsInstanceOfType(result, typeof(List <Dog>));
            }
        public void DogControllerAddDogTest()
        {
            // Arrange
            var dogController = new DogsController();

            dogController.Clear();

            Dog testDog  = new Dog("Test Name", "Test Description");
            Dog testDog2 = new Dog("Test Name", "Test Description Edited");
            Dog testDog3 = new Dog("Test Name Edited", "Test Description");
            Dog testDog4 = new Dog();

            var result  = dogController.AddDog(testDog);
            var result2 = dogController.AddDog(testDog);
            var result3 = dogController.AddDog(testDog2);
            var result4 = dogController.AddDog(testDog3);
            var result5 = dogController.AddDog(testDog4);

            testDog4.Name = "a";
            var result6 = dogController.AddDog(testDog4);

            var dogCollectionResult = dogController.GetAllDogs();
            var okObjectResult      = dogCollectionResult as OkObjectResult;

            Dictionary <string, Dog> dogCollection = okObjectResult.Value as Dictionary <string, Dog>;

            Dog addedDog = dogCollection[testDog4.Name];

            // Assert
            Assert.AreEqual(typeof(OkResult), result.GetType());
            Assert.AreEqual(typeof(BadRequestResult), result2.GetType());
            Assert.AreEqual(typeof(BadRequestResult), result3.GetType());
            Assert.AreEqual(typeof(OkResult), result4.GetType());
            Assert.AreEqual(typeof(BadRequestResult), result5.GetType());
            Assert.AreEqual(typeof(OkResult), result6.GetType());
            Assert.AreEqual(typeof(OkObjectResult), dogCollectionResult.GetType());

            Assert.IsTrue(dogCollection.ContainsKey(testDog.Name));
            Assert.IsFalse(dogCollection.ContainsValue(testDog2));
            Assert.IsTrue(dogCollection.ContainsKey(testDog3.Name));
            Assert.IsTrue(dogCollection.ContainsKey(testDog4.Name));

            Assert.IsTrue(addedDog.Description.Equals("No Description."));
        }
Beispiel #9
0
        public DogsControllerTest()
        {
            apiVersion = new ApiVersion(1, 0);

            var options = new DbContextOptionsBuilder <DogDbContext>()
                          .UseInMemoryDatabase(databaseName: "TestDogDatabase")
                          .Options;

            var dbContext = new DogDbContext(options);

            dbContext.Database.EnsureDeleted();

            var httpContext = new DefaultHttpContext();

            IDogEntityManager dogEntityManager = new DogEntityManager(dbContext);
            IDogMapper        dogMapper        = new DogMapper();

            Controller = new DogsController(dogEntityManager, dogMapper);
        }
        public void DogsControllerTestsSetup()
        {
            _dogsRepository = MockRepository.GenerateMock<IRepository<Dog>>();
              _breedsRepository = MockRepository.GenerateMock<IRepository<Breed>>();
              _placesRepository = MockRepository.GenerateMock<IPlacesRepository>();
              _unitofWork = MockRepository.GenerateMock<IUnitOfWork>();
              _dogSearchhelper = MockRepository.GenerateMock<IDogSearchService>();
              _configuration = MockRepository.GenerateMock<IConfiguration>();

              _breedsRepository.Stub(x => x.GetById(Arg<int>.Is.Anything)).Return(
            new Breed {Name = "Beagel"});

              _configuration.Stub(x => x.GetNationwideSearchResultsDescriptionMessageForAllBreeds())
            .Return("Search results {0} to {1} out of {2} results for all breeds nationwide.");
              _configuration.Stub(x => x.GetNationwideSearchResultsDescriptionMessageForSpecificBreed())
            .Return("Showing results {0} to {1} out of {2} results for {3} nationwide");
              _configuration.Stub(x => x.GetLocalSearchResultsDescriptionMessageForAllBreeds())
            .Return("Search results {0} to {1} out of {2} results for all breeds in {3}");

              _dogsController = new DogsController(_dogsRepository, _breedsRepository, _unitofWork, _dogSearchhelper, _configuration, _placesRepository);

              StubDogsRepository();
        }
        public void DogControllerGetAllDogsTest()
        {
            // Arrange
            _dogTestCollection = new Dictionary <string, Dog>();
            PopulateTestCollection();

            var dogController = new DogsController();

            dogController.Clear();

            var result         = dogController.GetAllDogs();
            var okObjectResult = result as OkObjectResult;

            Dictionary <string, Dog> dogCollection = okObjectResult.Value as Dictionary <string, Dog>;

            // Assert
            Assert.AreEqual(typeof(OkObjectResult), result.GetType());
            Assert.AreEqual(81, dogCollection.Count);
            foreach (var dog in dogCollection)
            {
                Assert.IsTrue(_dogTestCollection[dog.Key].Equals(dog.Value));
            }
        }
        public void DogControllerDeleteDogTest()
        {
            // Arrange
            var dogController = new DogsController();

            dogController.Clear();
            _dogTestCollection = new Dictionary <string, Dog>();
            PopulateTestCollection();

            var addDog1Result    = dogController.AddDog(_dogTestCollection["Bulldog"]);
            var addDog2Result    = dogController.AddDog(_dogTestCollection["Chihuahua"]);
            var deleteDog1Result = dogController.DeleteDog("Bulldog");
            var deleteDog2Result = dogController.DeleteDog("Chihuahua");
            var deleteDog3Result = dogController.DeleteDog("Sheepdog");
            var deleteEmptyDog   = dogController.DeleteDog("");

            // Assert
            Assert.AreEqual(typeof(OkResult), addDog1Result.GetType());
            Assert.AreEqual(typeof(OkResult), addDog2Result.GetType());
            Assert.AreEqual(typeof(OkResult), deleteDog1Result.GetType());
            Assert.AreEqual(typeof(OkResult), deleteDog2Result.GetType());
            Assert.AreEqual(typeof(BadRequestResult), deleteDog3Result.GetType());
            Assert.AreEqual(typeof(BadRequestResult), deleteEmptyDog.GetType());
        }
        public void Get_Paged_With_Place_Returns_Dogs_matching_Place()
        {
            // arrange
              const int placeId = 3;
              const string placeName = "Wallsend";
              const int page = 1;
              const int pageSize = 5;

              _dogsRepository.Stub(x => x.GetAll()).Return(
            new DogSearchResultsListBuilder().ListWith30Dogs().Build().AsQueryable());

              ConfigurationManager.AppSettings[AppSettingKeys.BaseUrlPagedDogs]
            = "localhost";

              var dogsController = new DogsController(
            _dogsRepository,
            _breedsRepository,
            _unitofWork,
            _dogSearchhelper,
            _configuration,
            _placesRepository);

              _placesRepository.Stub(x => x.GetById(placeId)).Return(
            new Place
            {
              Name = placeName
            });

              //act
              var result = dogsController.GetPaged(page, pageSize, placeId);

              Assert.That(result.TotalCount.Equals(3));
              Assert.That(result.SearchDescription, Is.EqualTo(
            string.Format("Search results 1 to 3 out of 3 results for all breeds in {0}",
              placeName)));
        }
        public void Get_Paged_With_Breed_Returns_Correct_Search_Description()
        {
            // arrange
              const int breedId = 3;
              const int page = 2;
              const int pageSize = 5;

              var dogsList = new DogSearchResultsListBuilder().ListOf14Beagels().Build();

              _dogSearchhelper.Stub(x => x.GetDogsByBreed(breedId)).Return(dogsList);

              _dogSearchhelper.Stub(x => x.ApplyDogLocationFilteringAndSorting(Arg<IQueryable<Dog>>.Is.Anything, Arg<int>.Is.Anything,
            Arg<string>.Is.Anything, Arg<int>.Is.Anything)).Return(dogsList);

              var dogsController = new DogsController(_dogsRepository, _breedsRepository, _unitofWork, _dogSearchhelper, _configuration, _placesRepository);

              //act
              var result = dogsController.GetPagedByBreed(page, pageSize, breedId, SearchSortOptions.PRICE_HIGHEST);

              Assert.That(result.SearchDescription, Is.EqualTo("Showing results 6 to 10 out of 14 results for Beagel nationwide"));
        }
        public void CtorShouldWork()
        {
            var dog = new CreateDogViewModel
            {
                Name          = "Pesho",
                BirthDate     = DateTime.UtcNow,
                Province      = Province.Burgas,
                IsDisinfected = true,
                IsVaccinated  = false,
                OwnerNotes    = "BlaBla",
                Breed         = DogBreed.JackRussellTerrier
            };

            this.createDog = dog;

            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase("ResqueDb")
                          .Options;


            var db = new ApplicationDbContext(options);

            this.context = db;

            var store = new Mock <IUserStore <User> >();

            var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null);


            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Email, "*****@*****.**")
            };

            var identity = new ClaimsIdentity(claims, "TestAuthType");

            var claimsPrincipal = new ClaimsPrincipal(identity);

            var fakeUser = new User
            {
                Email     = "*****@*****.**",
                FirstName = "Pesho",
                LastName  = "Gosho",
                Province  = Province.Blagoevgrad,
                BirthDate = DateTime.UtcNow
            };

            this.context.Users.Add(fakeUser);

            this.context.SaveChanges();

            userManager.Setup(u => u.GetUserAsync(claimsPrincipal)).ReturnsAsync(this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**"));
            userManager.Setup(u => u.GetUserId(claimsPrincipal)).Returns(this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id);

            this.userManager = userManager.Object;

            var dogsController = new DogsController(this.context, this.userManager);

            dogsController.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    User = claimsPrincipal
                }
            };

            this.dogsController = dogsController;
        }