public async Task GivenAppService_WhenGetAllCalled_ThenAllPalindromesRetrievedBack()
        {
            //Arrange
            var expectedId  = Guid.NewGuid();
            var mockAppRepo = new Mock <IAppRepository>();
            var modelList   = new List <PalindromeModel> {
                new PalindromeModel {
                    Id = Guid.NewGuid(), Phrase = "Was it a cat I saw"
                }
            };

            mockAppRepo.Setup(x => x.GetAsync <PalindromeModel>(It.IsAny <Expression <Func <PalindromeModel, bool> > >(),
                                                                It.IsAny <Func <IQueryable <PalindromeModel>, IOrderedQueryable <PalindromeModel> > >(),
                                                                It.IsAny <IEnumerable <Expression <Func <PalindromeModel, object> > > >(),
                                                                It.IsAny <int?>(), It.IsAny <int?>(), It.IsAny <bool>()))
            .ReturnsAsync(() => modelList);
            var mockModelValidator   = new Mock <IModelValidator>();
            var mockPaymentValidator = new Mock <PalindromeVmValidator>();
            var autoMapperConfig     = new MapperConfiguration(cfg => cfg.AddProfile(new AppProfile()));
            var objectMapper         = new ObjectMapper(autoMapperConfig.CreateMapper());
            var palindromeService    = new PalindromeService(mockAppRepo.Object, mockModelValidator.Object, objectMapper);

            //Act
            var list = await palindromeService.GetAll();

            //Assert
            list.Count().ShouldBe(modelList.Count());
            mockAppRepo.Verify(x => x.GetAsync <PalindromeModel>(It.IsAny <Expression <Func <PalindromeModel, bool> > >(),
                                                                 It.IsAny <Func <IQueryable <PalindromeModel>, IOrderedQueryable <PalindromeModel> > >(),
                                                                 It.IsAny <IEnumerable <Expression <Func <PalindromeModel, object> > > >(),
                                                                 It.IsAny <int?>(), It.IsAny <int?>(), It.IsAny <bool>()), Times.Once);
        }
        public AcceptanceTest()
        {
            var store  = new PalindromeStore();
            var finder = new PalindromeFinder(store);

            _outputFake        = new OutputFake();
            _palindromeService = new PalindromeService(finder, _outputFake);
        }
Exemple #3
0
        public void IsPalindrome_AllLowercaseNonPalindrome_ReturnsFalse(string value)
        {
            var palindromeService = new PalindromeService();

            bool result = palindromeService.IsPalindrome(value);

            Assert.False(result);
        }
        public void TestPalindromeReturnsNotPalindromeOnSingleWordNonPalindrome()
        {
            // Arrange
            var input = "banana";
            // Act
            var result = PalindromeService.IsPalindrome(input);

            // Assert
            Assert.AreEqual("Not Palindrome", result);
        }
        public void TestPalindromeReturnsPalindromeOnOddLengthSingleWordPalindrome()
        {
            // Arrange
            var input = "annna";
            // Act
            var result = PalindromeService.IsPalindrome(input);

            // Assert
            Assert.AreEqual("Palindrome", result);
        }
            public async Task ThenShouldSaveSuccessfully()
            {
                var service = new PalindromeService(_mockRepository.Object, _mockMapper.Object);

                var savedPalindrome = await service.SaveAsync(new CreatePalindromeModel()
                {
                    Sequence = _dbModel.Sequence
                });

                Assert.Equal(_dbModel.Id, savedPalindrome.Id);
                Assert.Equal(_dbModel.Sequence, savedPalindrome.Sequence);
            }
        public async Task GivenAppService_WhenValidPhraseIsPassed_ThenViewModelValidated_And_PhraseAdded_And_IdRetrievedBack()
        {
            //Arrange
            var             expectedId  = Guid.NewGuid();
            var             mockAppRepo = new Mock <IAppRepository>();
            PalindromeModel model       = null;

            mockAppRepo.Setup(x => x.Create(It.IsAny <PalindromeModel>())).Callback((PalindromeModel x) => { model = x; }).Verifiable();
            mockAppRepo.Setup(x => x.SaveAsync()).Callback(() => { model.Id = expectedId; }).Returns(Task.FromResult <object>(null)).Verifiable();
            var mockModelValidator   = new Mock <IModelValidator>();
            var mockPaymentValidator = new Mock <PalindromeVmValidator>();
            var autoMapperConfig     = new MapperConfiguration(cfg => cfg.AddProfile(new AppProfile()));
            var objectMapper         = new ObjectMapper(autoMapperConfig.CreateMapper());
            var palindromeService    = new PalindromeService(mockAppRepo.Object, mockModelValidator.Object, objectMapper);

            //Act
            var receiptNum = await palindromeService.Add(new PalindromeVm());

            //Assert
            receiptNum.ShouldBe(expectedId);
            mockModelValidator.Verify(x => x.ValidateAsync <PalindromeVm, PalindromeVmValidator>(It.IsAny <PalindromeVm>()), Times.Once);
            mockAppRepo.Verify(x => x.SaveAsync(), Times.Once);
            mockAppRepo.Verify(x => x.Create(It.IsAny <PalindromeModel>()), Times.Once);
        }
 public void TestSetup()
 {
     _palindromeService = new PalindromeService();
 }