public void Initialise()
        {
            MockPersonRepository = new MockPersonRepository();
            MockPersonRepository.Create(new Person {Address = null});

            PersonWithNullAddress = MockPersonRepository.Get(p => p.Address == null).FirstOrDefault();
        }
Beispiel #2
0
        public async System.Threading.Tasks.Task ShouldCrashOnDemand()
        {
            var l = new DummyLogger();
            var r = new MockPersonRepository();

            var c = new PersonController(l, r);
            await Assert.ThrowsAnyAsync <Exception>(() => c.Get("err"));
        }
Beispiel #3
0
        public async System.Threading.Tasks.Task ShouldNotCrashOnNullQuery()
        {
            var l = new DummyLogger();
            var r = new MockPersonRepository();

            var c = new PersonController(l, r);

            Assert.Empty(await c.Get(null));
        }
Beispiel #4
0
        public async System.Threading.Tasks.Task ShouldNotReturnUnknownPeople()
        {
            var l = new DummyLogger();
            var r = new MockPersonRepository();

            var c = new PersonController(l, r);

            Assert.Empty(await c.Get("XXX"));
        }
Beispiel #5
0
        public void TestUpdateAuthors()
        {
            var unitOfWorkProvider = CreateMockUnitOfWorkProvider();
            var bookData           = new BookData
            {
                Authors = new List <AuthorData>
                {
                    new AuthorData {
                        Name = "Aaa Bbb"
                    },
                    new AuthorData {
                        Name = "Ccc Ddd"
                    }
                }
            };


            var personRepository = new MockPersonRepository(unitOfWorkProvider)
            {
                CanFindAuthorByName = true
            };
            var projectRepository = new MockProjectRepository(unitOfWorkProvider)
            {
                ProjectOriginalAuthors = new List <ProjectOriginalAuthor>
                {
                    new ProjectOriginalAuthor
                    {
                        OriginalAuthor = new OriginalAuthor {
                            FirstName = "Eee", LastName = "Fff", Id = 30
                        },
                        Sequence = 1
                    },
                    new ProjectOriginalAuthor
                    {
                        OriginalAuthor = new OriginalAuthor {
                            FirstName = "Aaa", LastName = "Bbb", Id = 10
                        },
                        Sequence = 2
                    }
                }
            };
            var subtask = new UpdateAuthorsSubtask(projectRepository, personRepository);

            subtask.UpdateAuthors(41, bookData);

            Assert.AreEqual(1, projectRepository.CreatedObjects.Count);
            Assert.AreEqual(1, projectRepository.UpdatedObjects.Count);
            Assert.AreEqual(1, projectRepository.DeletedObjects.Count);

            var createdItem = (ProjectOriginalAuthor)projectRepository.CreatedObjects.Single();
            var updatedItem = (ProjectOriginalAuthor)projectRepository.UpdatedObjects.Single();

            Assert.AreEqual(1, updatedItem.Sequence);
            Assert.AreEqual(2, createdItem.Sequence);
        }
Beispiel #6
0
        public async System.Threading.Tasks.Task ShouldReturnKnownPeople()
        {
            var l = new DummyLogger();
            var r = new MockPersonRepository();

            var c     = new PersonController(l, r);
            var p     = r.GetAll().First();
            var fname = p.FirstName;
            var lname = p.LastName;

            Assert.NotEmpty(await c.Get(fname));
            Assert.NotEmpty(await c.Get(lname));
        }
        public async Task ValidationFlow()
        {
            MockValidatorFactory.Setup(v => v.GetValidator(Request)).Throws(new ValidationException("testing error."));

            var service = CreateService();
            var result  = await service.ProcessAsync();

            MockValidatorFactory.Verify(v => v.GetValidator(Request), Times.Once);
            MockPersonRepository.Verify(r => r.GetPersonAsync(Request.PersonID.Value), Times.Never);

            Assert.IsTrue(result != null);
            Assert.IsTrue(result.StatusCode == HttpStatusCode.BadRequest);
            Assert.IsTrue(result.Response is ValidationErrorResponse response && !response.Successful);
        }
        public async Task EmptyValidator()
        {
            MockValidatorFactory.Setup(v => v.GetValidator(Request)).Returns <IValidator>(null);

            var service = CreateService();
            var result  = await service.ProcessAsync();

            MockValidatorFactory.Verify(v => v.GetValidator(Request), Times.Once);
            MockPersonRepository.Verify(r => r.GetPersonAsync(Request.PersonID.Value), Times.Never);

            Assert.IsTrue(result != null);
            Assert.IsTrue(result.StatusCode == HttpStatusCode.InternalServerError);
            Assert.IsTrue(result.Response is ErrorResponse response && !response.Successful);
        }
Beispiel #9
0
        public void Test_GetAllPersons()
        {
            // arrange
            var colorMock = new Mock <IColorRepository>();

            colorMock.Setup(c => c.Colors).Returns(Colors);
            var pService        = new MockPersonRepository(colorMock.Object);
            int expectedPersons = 9;

            // act
            var persons = pService.GetPersons();

            // assert
            Assert.Equal(expectedPersons, persons.Count());
        }
Beispiel #10
0
        public void Test_GetPersonById()
        {
            // arrange
            var colorMock = new Mock <IColorRepository>();

            colorMock.Setup(c => c.Colors).Returns(Colors);
            var pService   = new MockPersonRepository(colorMock.Object);
            int expectedId = 0;

            // act
            var person = pService.GetPersonById(0);

            // assert
            Assert.Equal(expectedId, person.Id);
        }
Beispiel #11
0
        public void Test_GetPersonsByColor()
        {
            // arrange
            var colorMock = new Mock <IColorRepository>();

            colorMock.Setup(c => c.Colors).Returns(Colors);
            var pService   = new MockPersonRepository(colorMock.Object);
            int expectedId = 3;

            // act
            var persons             = pService.GetPersonsByColor("grün");
            int totalPersonsByColor = persons.Count();

            // assert
            Assert.Equal(expectedId, totalPersonsByColor);
        }
Beispiel #12
0
        public void Test_AddPersion()
        {
            // arrange

            var person = new Person()
            {
                Id = 9, Name = "Mr. New", LastName = "Mann", ColorId = 1, City = "Erlangen", ZipCode = 91402
            };
            var colorMock = new Mock <IColorRepository>();

            colorMock.Setup(c => c.Colors).Returns(Colors);
            var pService            = new MockPersonRepository(colorMock.Object);
            int totaLPersonAfterAdd = 10;

            // act
            var persons      = pService.AddPerson(person);
            var personsCount = persons.Count();

            // assert
            Assert.Equal(totaLPersonAfterAdd, personsCount);
        }
        public async Task SuccessfulFlow()
        {
            const string name = "example";
            const int    age  = int.MaxValue;
            var          repositoryResults = new PersonResult()
            {
                Name = name,
                Age  = age
            };

            MockValidatorFactory.Setup(v => v.GetValidator(Request)).Returns(new GetPersonRequestValidator());
            MockPersonRepository.Setup(r => r.GetPersonAsync(Request.PersonID.Value)).ReturnsAsync(repositoryResults);

            var service = CreateService();
            var result  = await service.ProcessAsync();

            MockValidatorFactory.Verify(v => v.GetValidator(Request), Times.Once);
            MockPersonRepository.Verify(r => r.GetPersonAsync(Request.PersonID.Value), Times.Once);

            Assert.IsTrue(result != null);
            Assert.IsTrue(result.StatusCode == HttpStatusCode.OK);
            Assert.IsTrue(result.Response is GetPersonResponse response && response.Person != null && response.Successful);
        }
        public async Task ValidatorFailure()
        {
            var mockValidationResult = new Mock <ValidationResult>();

            mockValidationResult.SetupGet(v => v.IsValid).Returns(false);

            MockServiceValidationConverter.Setup(v => v.ConvertToDictionaryFormat(It.IsAny <ValidationResult>()))
            .Returns(new Dictionary <string, List <string> > {
                { "testing", new List <string> {
                      "testing message."
                  } }
            });

            var mockValidator = new Mock <GetPersonRequestValidator>();

            mockValidator.Setup(v => v.ValidateAsync(It.IsAny <ValidationContext <GetPersonRequest> >(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(mockValidationResult.Object);

            MockValidatorFactory.Setup(v => v.GetValidator(Request)).Returns(mockValidator.Object);

            var service = CreateService();
            var result  = await service.ProcessAsync();

            MockValidatorFactory.Verify(v => v.GetValidator(Request), Times.Once);
            mockValidator.Verify(v => v.ValidateAsync(It.IsAny <ValidationContext <GetPersonRequest> >(), It.IsAny <CancellationToken>()), Times.Once);
            mockValidationResult.VerifyGet(v => v.IsValid, Times.Once);
            MockServiceValidationConverter.Verify(v => v.ConvertToDictionaryFormat(It.IsAny <ValidationResult>()), Times.Once);

            MockPersonRepository.Verify(r => r.GetPersonAsync(Request.PersonID.Value), Times.Never);

            Assert.IsTrue(result != null);
            Assert.IsTrue(result.StatusCode == HttpStatusCode.BadRequest);
            Assert.IsTrue(result.Response is ValidationErrorResponse response &&
                          !response.Successful &&
                          response.ValidationErrors.ContainsKey("testing") &&
                          response.ValidationErrors["testing"][0] == "testing message.");
        }
Beispiel #15
0
        public void TestUpdateResponsiblePersons()
        {
            var unitOfWorkProvider = CreateMockUnitOfWorkProvider();
            var bookData           = new BookData
            {
                Responsibles = new List <ResponsibleData>
                {
                    new ResponsibleData
                    {
                        NameText = "Aaa Bbb",
                        TypeText = "editor",
                    },
                    new ResponsibleData
                    {
                        NameText = "Aaa Bbb",
                        TypeText = "production",
                    },
                    new ResponsibleData
                    {
                        NameText = "Ccc Ddd",
                        TypeText = "editor",
                    },
                }
            };


            var personRepository = new MockPersonRepository(unitOfWorkProvider)
            {
                CanFindAuthorByName = true
            };
            var projectRepository = new MockProjectRepository(unitOfWorkProvider)
            {
                ProjectResponsiblePersons = new List <ProjectResponsiblePerson>
                {
                    new ProjectResponsiblePerson
                    {
                        ResponsiblePerson = new ResponsiblePerson {
                            FirstName = "Eee", LastName = "Fff", Id = 30
                        },
                        ResponsibleType = new ResponsibleType {
                            Text = "editor", Id = 10
                        },
                        Sequence = 1,
                    },
                    new ProjectResponsiblePerson
                    {
                        ResponsiblePerson = new ResponsiblePerson {
                            FirstName = "Aaa", LastName = "Bbb", Id = 31
                        },
                        ResponsibleType = new ResponsibleType {
                            Text = "editor", Id = 10
                        },
                        Sequence = 1,
                    }
                }
            };
            var subtask = new UpdateResponsiblePersonSubtask(projectRepository, personRepository);

            subtask.UpdateResponsiblePersonList(41, bookData);

            Assert.AreEqual(2, projectRepository.CreatedObjects.Count);
            Assert.AreEqual(1, projectRepository.UpdatedObjects.Count);
            Assert.AreEqual(1, projectRepository.DeletedObjects.Count);

            var createdItem2 = projectRepository.CreatedObjects.OfType <ProjectResponsiblePerson>().Single(x => x.ResponsiblePerson.FirstName == "Aaa");
            var createdItem3 = projectRepository.CreatedObjects.OfType <ProjectResponsiblePerson>().Single(x => x.ResponsiblePerson.FirstName == "Ccc");
            var updatedItem  = projectRepository.UpdatedObjects.OfType <ProjectResponsiblePerson>().Single();

            Assert.AreEqual(1, updatedItem.Sequence);
            Assert.AreEqual(2, createdItem2.Sequence);
            Assert.AreEqual(3, createdItem3.Sequence);
        }