示例#1
0
        public void ReturnSuchIdDoesNotExist_WhenCustomerIsNotFoundInTheRepository()
        {
            //Arrange
            var validParameters = new List <string>()
            {
                "1", "10"
            };
            var dbMock = new Mock <IDatabase>();

            var genreMock           = new Mock <FilmGenre>();
            var genreRepositoryMock = new Mock <IFilmGenreRepository>();

            genreRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <FilmGenre, bool> > >())).Returns(genreMock.Object);

            dbMock.Setup(d => d.FilmGenres).Returns(genreRepositoryMock.Object);

            var CustomerRepositoryMock = new Mock <ICustomerRepository>();

            CustomerRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <Customer, bool> > >())).Returns((Customer)null);

            dbMock.Setup(d => d.Customers).Returns(CustomerRepositoryMock.Object);

            var sut = new AddGenreToCustomerCommand(dbMock.Object);

            var expectedString = "Customer not found";

            //Act
            var result = sut.Execute(validParameters);

            //Assert
            StringAssert.Contains(expectedString, result);
        }
示例#2
0
        public void ReturnNotValidCustomerId_WhenSecondParameterCannotBeParsedToInt(params string[] parameters)
        {
            //Arrange
            var dbMock              = new Mock <IDatabase>();
            var genreMock           = new Mock <FilmGenre>();
            var genreRepositoryMock = new Mock <IFilmGenreRepository>();

            genreRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <FilmGenre, bool> > >())).Returns(genreMock.Object);
            dbMock.Setup(d => d.FilmGenres).Returns(genreRepositoryMock.Object);

            var filmMock           = new Mock <Film>();
            var filmRepositoryMock = new Mock <IFilmRepository>();

            filmRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <Film, bool> > >())).Returns(filmMock.Object);

            dbMock.Setup(d => d.Films).Returns(filmRepositoryMock.Object);

            var sut            = new AddGenreToCustomerCommand(dbMock.Object);
            var expectedString = "Fill in numeric value";

            //Act
            var result = sut.Execute(parameters);

            //Assert
            StringAssert.Contains(expectedString, result);
        }
示例#3
0
        public void ReturnNotValidGenreId_WhenFirstParameterCannotBeParsedToInt(params string[] parameters)
        {
            //Arrange
            var dbMock         = new Mock <IDatabase>();
            var sut            = new AddGenreToCustomerCommand(dbMock.Object);
            var expectedString = "Fill in numeric value";

            //Act
            var result = sut.Execute(parameters);

            //Assert
            StringAssert.Contains(expectedString, result);
        }
示例#4
0
        public void ReturnParametersAreEmpty_WhenSomeOfTheParametersIsEmpty(params string[] parameters)
        {
            //Arrange
            var dbMock         = new Mock <IDatabase>();
            var sut            = new AddGenreToCustomerCommand(dbMock.Object);
            var expectedString = "parameters are empty";

            //Act
            var result = sut.Execute(parameters);

            //Assert
            StringAssert.Contains(expectedString, result);
        }
示例#5
0
        public void ReturnNotValidParameters_WhenParametersAreDifferentOfTwo(params string[] parameters)
        {
            //Arrange
            var dbMock         = new Mock <IDatabase>();
            var sut            = new AddGenreToCustomerCommand(dbMock.Object);
            var expectedString = "Not valid number";

            //Act
            var result = sut.Execute(parameters);

            //Assert
            StringAssert.Contains(expectedString, result);
        }
示例#6
0
        public void CallDbComplete_WhenCustomerDoesNotContainsTheNewGenre()
        {
            //Arrange
            var validGenreId    = 1;
            var validParameters = new List <string>()
            {
                validGenreId.ToString(), "10"
            };
            var dbMock = new Mock <IDatabase>();

            var genreMock = new Mock <FilmGenre>();

            genreMock.Object.Id = validGenreId;
            var genreRepositoryMock = new Mock <IFilmGenreRepository>();

            genreRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <FilmGenre, bool> > >())).Returns(genreMock.Object);

            dbMock.Setup(d => d.FilmGenres).Returns(genreRepositoryMock.Object);

            var CustomerRepositoryMock = new Mock <ICustomerRepository>();

            var CustomerMock = new Mock <Customer>();

            CustomerMock.Setup(c => c.Genres).Returns(new List <FilmGenre>());

            var filmMockOld = new Mock <Film>();

            filmMockOld.Object.Id = 2;

            var films = new List <Film>()
            {
                filmMockOld.Object
            };

            CustomerMock.Setup(f => f.Films).Returns(films);

            CustomerRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <Customer, bool> > >())).Returns(CustomerMock.Object);

            dbMock.Setup(d => d.Customers).Returns(CustomerRepositoryMock.Object);

            var sut = new AddGenreToCustomerCommand(dbMock.Object);

            //Act
            sut.Execute(validParameters);

            //Assert
            dbMock.Verify(d => d.Complete(), Times.Once);
        }
示例#7
0
        public void AddTheGenreToTheCustomer_WhenCustomerDoesNotContainsTheNewGenre()
        {
            //Arrange
            var validGenreId    = 1;
            var validParameters = new List <string>()
            {
                validGenreId.ToString(), "10"
            };
            var dbMock = new Mock <IDatabase>();

            var genreMock = new Mock <FilmGenre>();

            genreMock.Object.Id = validGenreId;
            var genreRepositoryMock = new Mock <IFilmGenreRepository>();

            genreRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <FilmGenre, bool> > >())).Returns(genreMock.Object);

            dbMock.Setup(d => d.FilmGenres).Returns(genreRepositoryMock.Object);

            var CustomerRepositoryMock = new Mock <ICustomerRepository>();

            var CustomerMock = new Mock <Customer>();

            var genreMockOld = new Mock <FilmGenre>();

            genreMockOld.Object.Id = 1;

            var genres = new List <FilmGenre>()
            {
                genreMockOld.Object
            };

            CustomerMock.Setup(f => f.Genres).Returns(genres);

            CustomerRepositoryMock.Setup(f => f.SingleOrDefault(It.IsAny <Expression <Func <Customer, bool> > >())).Returns(CustomerMock.Object);

            dbMock.Setup(d => d.Customers).Returns(CustomerRepositoryMock.Object);

            var sut = new AddGenreToCustomerCommand(dbMock.Object);

            //Act
            sut.Execute(validParameters);

            //Assert
            CollectionAssert.Contains(CustomerMock.Object.Genres, genreMock.Object);
        }