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); }
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); }
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); }
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); }
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); }
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); }
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); }