Example #1
0
        public void ThrowArgumentNullException_WhenPassedWordIsNotPresentInProvidedDictionary()
        {
            // arrange
            var dictionaryRepository = new Mock <IRepository <Dictionary> >();
            var unitOfWork           = new Mock <IUnitOfWork>();

            var dictionary = new Dictionary()
            {
                Words = new List <Word>()
            };

            var dictionaries = new List <Dictionary>();

            dictionaries.Add(dictionary);

            dictionaryRepository
            .Setup(x => x.All(It.IsAny <Expression <Func <Dictionary, bool> > >()))
            .Returns(dictionaries);

            var deleteWordCommand = new DeleteWordCommand(dictionaryRepository.Object, unitOfWork.Object);

            var commandParameters = new List <string>()
            {
                "SomeDictionary", "SomeWord"
            };

            // act and assert
            Assert.Throws <ArgumentNullException>(() => deleteWordCommand.Execute(commandParameters));
        }
Example #2
0
        public void RemoveWordFromDictionary_WhenSuchWordsExistsInPassedDictionary()
        {
            // arrange
            var dictionaryRepository = new Mock <IRepository <Dictionary> >();
            var unitOfWork           = new Mock <IUnitOfWork>();

            var word = new Word()
            {
                Name = "SomeName"
            };
            var dictionary = new Dictionary()
            {
                Words = new List <Word>()
                {
                    word
                }
            };

            var dictionaries = new List <Dictionary>();

            dictionaries.Add(dictionary);

            dictionaryRepository
            .Setup(x => x.All(It.IsAny <Expression <Func <Dictionary, bool> > >()))
            .Returns(dictionaries);

            var deleteWordCommand = new DeleteWordCommand(dictionaryRepository.Object, unitOfWork.Object);

            var commandParameters = new List <string>()
            {
                "SomeDictionary", word.Name
            };

            // act
            deleteWordCommand.Execute(commandParameters);

            // assert
            CollectionAssert.DoesNotContain(dictionary.Words, word);
        }
Example #3
0
        public void ReturnCorrectMessage_WhenWordsHasBeenDeletedSuccessfullyFromDictionary()
        {
            // arrange
            var dictionaryRepository = new Mock <IRepository <Dictionary> >();
            var unitOfWork           = new Mock <IUnitOfWork>();

            var word = new Word()
            {
                Name = "SomeName"
            };
            var dictionary = new Dictionary()
            {
                Title = "SomeDictionary", Words = new List <Word>()
                {
                    word
                }
            };

            var dictionaries = new List <Dictionary>();

            dictionaries.Add(dictionary);

            dictionaryRepository
            .Setup(x => x.All(It.IsAny <Expression <Func <Dictionary, bool> > >()))
            .Returns(dictionaries);

            var deleteWordCommand = new DeleteWordCommand(dictionaryRepository.Object, unitOfWork.Object);
            var commandParameters = new List <string>()
            {
                dictionary.Title, word.Name
            };

            // act
            string resultMessage = deleteWordCommand.Execute(commandParameters);

            // assert
            StringAssert.Contains(dictionary.Title, resultMessage);
            StringAssert.Contains(word.Name, resultMessage);
        }
Example #4
0
        public void CallUnitOfWorkSaveChangesMethod_WhenWordHasBeenSuccessfullyRemovedFromDictionary()
        {
            // arrange
            var dictionaryRepository = new Mock <IRepository <Dictionary> >();
            var unitOfWork           = new Mock <IUnitOfWork>();

            var word = new Word()
            {
                Name = "SomeName"
            };
            var dictionary = new Dictionary()
            {
                Words = new List <Word>()
                {
                    word
                }
            };

            var dictionaries = new List <Dictionary>();

            dictionaries.Add(dictionary);

            dictionaryRepository
            .Setup(x => x.All(It.IsAny <Expression <Func <Dictionary, bool> > >()))
            .Returns(dictionaries);

            var deleteWordCommand = new DeleteWordCommand(dictionaryRepository.Object, unitOfWork.Object);

            var commandParameters = new List <string>()
            {
                "SomeDictionary", word.Name
            };

            // act
            deleteWordCommand.Execute(commandParameters);

            // assert
            unitOfWork.Verify(x => x.SaveChanges(), Times.Once);
        }