Example #1
0
        public void WhenIsInformalCarerIsValidReturnsItIsValid(string isInformalCarer)
        {
            var validRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(isInformalCarer: isInformalCarer);

            var response = createPersonalRelationshipRequestValidator.Validate(validRequest);

            response.IsValid.Should().BeTrue();
        }
Example #2
0
        public void WhenDetailsIs1000CharactersReturnsItIsValid()
        {
            var validRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(details: _faker.Random.String(1000));

            var response = createPersonalRelationshipRequestValidator.Validate(validRequest);

            response.IsValid.Should().BeTrue();
        }
Example #3
0
        public void WhenRequestIsValidReturnsItIsValid()
        {
            var validRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest();

            var response = createPersonalRelationshipRequestValidator.Validate(validRequest);

            response.IsValid.Should().BeTrue();
        }
Example #4
0
        public void WhenCreatedByIsNotAnEmailAddressReturnsErrorWithMessage()
        {
            var badRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(createdBy: "foobar");

            var response = createPersonalRelationshipRequestValidator.Validate(badRequest);

            response.IsValid.Should().BeFalse();
            response.Errors.Should().Contain(e => e.ErrorMessage == "'createdBy' must be an email address.");
        }
Example #5
0
        public void WhenIsInformalCarerIsInvalidReturnsErrorWithMessage(string isInformalCarer)
        {
            var badRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(isInformalCarer: isInformalCarer);

            var response = createPersonalRelationshipRequestValidator.Validate(badRequest);

            response.IsValid.Should().BeFalse();
            response.Errors.Should().Contain(e => e.ErrorMessage == "'isInformalCarer' must be 'Y' or 'N'.");
        }
        public void CallsPersonalRelationshipsUseCaseToCreatePersonalRelationship()
        {
            _mockPersonalRelationshipsUseCase.Setup(x => x.ExecutePost(It.IsAny <CreatePersonalRelationshipRequest>()));
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest();

            var response = _relationshipController.CreatePersonalRelationship(request) as BadRequestObjectResult;

            _mockPersonalRelationshipsUseCase.Verify(x => x.ExecutePost(request));
        }
Example #7
0
        public void WhenDetailsIsAbove1000CharactersReturnsErrorWithMessage()
        {
            var badRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(details: _faker.Random.String(1001));

            var response = createPersonalRelationshipRequestValidator.Validate(badRequest);

            response.IsValid.Should().BeFalse();
            response.Errors.Should().Contain(e => e.ErrorMessage == "'details' must be less than or equal to 1,000 characters.");
        }
        public void WhenRequestIsValidReturnsSuccessfulResponse()
        {
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest();

            var response = _relationshipController.CreatePersonalRelationship(request);

            response.Should().BeOfType <CreatedAtActionResult>();
            var createdAtAction = response as CreatedAtActionResult;

            createdAtAction.StatusCode.Should().Be(201);
            createdAtAction.Value.Should().Be("Successfully created personal relationship.");
        }
        public void WhenRequestIsInValidReturnsBadRequest400WithMessage()
        {
            var badRequest = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(isMainCarer: "invalid");

            var response = _relationshipController.CreatePersonalRelationship(badRequest);

            response.Should().BeOfType <BadRequestObjectResult>();
            var badRequestObject = response as BadRequestObjectResult;

            badRequestObject.StatusCode.Should().Be(400);
            badRequestObject.Value.Should().Be("'isMainCarer' must be 'Y' or 'N'.");
        }
        public void WhenWorkerNotFoundExceptionIsThrownReturns400WithMessage()
        {
            var exceptionMessage = "error message";

            _mockPersonalRelationshipsUseCase.Setup(x => x.ExecutePost(It.IsAny <CreatePersonalRelationshipRequest>()))
            .Throws(new WorkerNotFoundException(exceptionMessage));
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest();

            var response = _relationshipController.CreatePersonalRelationship(request) as BadRequestObjectResult;

            response?.StatusCode.Should().Be(400);
            response?.Value.Should().Be(exceptionMessage);
        }
Example #11
0
        public void WhenIsMainCarerIsNullItDoesNotThrowANullException()
        {
            var(person, otherPerson) = PersonalRelationshipsHelper.SavePersonAndOtherPersonToDatabase(DatabaseContext);
            var type    = DatabaseContext.PersonalRelationshipTypes.FirstOrDefault(prt => prt.Description == "parent");
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(
                person.Id, otherPerson.Id, type.Id, type.Description
                );

            request.IsMainCarer = null;

            Action act = () => _databaseGateway.CreatePersonalRelationship(request);

            act.Should().NotThrow <NullReferenceException>();
        }
Example #12
0
        public void WhenIsMainCarerIsLowercaseConvertsItToUppercase()
        {
            var(person, otherPerson) = PersonalRelationshipsHelper.SavePersonAndOtherPersonToDatabase(DatabaseContext);
            var type    = DatabaseContext.PersonalRelationshipTypes.FirstOrDefault(prt => prt.Description == "parent");
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(
                person.Id, otherPerson.Id, type.Id, type.Description, isMainCarer: "y"
                );

            _databaseGateway.CreatePersonalRelationship(request);

            var personalRelationship = DatabaseContext.PersonalRelationships.FirstOrDefault();

            personalRelationship?.IsMainCarer.Should().Be("Y");
        }
Example #13
0
        public void AuditsThePersonalRelationshipDetails()
        {
            var(person, otherPerson) = PersonalRelationshipsHelper.SavePersonAndOtherPersonToDatabase(DatabaseContext);
            var type    = DatabaseContext.PersonalRelationshipTypes.FirstOrDefault(prt => prt.Description == "parent");
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(
                person.Id, otherPerson.Id, type.Id, type.Description
                );

            var response = _databaseGateway.CreatePersonalRelationship(request);

            var details = DatabaseContext.PersonalRelationshipDetails.FirstOrDefault();

            details?.CreatedAt.Should().NotBeNull();
            details?.CreatedBy.Should().Be(request.CreatedBy);
        }
Example #14
0
        public void SetUp()
        {
            _mockDatabaseGateway          = new Mock <IDatabaseGateway>();
            _personalRelationshipsUseCase = new PersonalRelationshipsUseCase(_mockDatabaseGateway.Object);

            _mockDatabaseGateway.Setup(x => x.GetPersonalRelationshipTypeByDescription(_typeInRequest.Description))
            .Returns(_typeInRequest);

            _request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(type: _typeInRequest.Description);

            _person      = TestHelpers.CreatePerson(_request.PersonId);
            _otherPerson = TestHelpers.CreatePerson(_request.OtherPersonId);

            _typeInExistingRelationship = PersonalRelationshipsHelper.CreatePersonalRelationshipType("partner");

            _relationship = PersonalRelationshipsHelper.CreatePersonalRelationship(_person, _otherPerson, _typeInExistingRelationship);
            _rel_details  = PersonalRelationshipsHelper.CreatePersonalRelationshipDetail(_relationship.Id, "some details for the relationship");
        }
Example #15
0
        public void SetsStartDateToNow()
        {
            var fakeTime = new DateTime(2000, 1, 1, 15, 30, 0);

            _mockSystemTime.Setup(time => time.Now).Returns(fakeTime);

            var(person, otherPerson) = PersonalRelationshipsHelper.SavePersonAndOtherPersonToDatabase(DatabaseContext);
            var type    = DatabaseContext.PersonalRelationshipTypes.FirstOrDefault(prt => prt.Description == "parent");
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(
                person.Id, otherPerson.Id, type.Id, type.Description
                );

            _databaseGateway.CreatePersonalRelationship(request);

            var personalRelationship = DatabaseContext.PersonalRelationships.FirstOrDefault();

            personalRelationship?.StartDate.Should().Be(fakeTime);
        }
Example #16
0
        public void CreatesAPersonalRelationship()
        {
            var(person, otherPerson) = PersonalRelationshipsHelper.SavePersonAndOtherPersonToDatabase(DatabaseContext);
            var type    = DatabaseContext.PersonalRelationshipTypes.FirstOrDefault(prt => prt.Description == "parent");
            var request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(
                person.Id, otherPerson.Id, type.Id, type.Description
                );

            _databaseGateway.CreatePersonalRelationship(request);

            var personalRelationship = DatabaseContext.PersonalRelationships.FirstOrDefault();

            personalRelationship?.PersonId.Should().Be(request.PersonId);
            personalRelationship?.OtherPersonId.Should().Be(request.OtherPersonId);
            personalRelationship?.TypeId.Should().Be(request.TypeId);
            personalRelationship?.IsMainCarer.Should().Be(request.IsMainCarer.ToUpper());
            personalRelationship?.IsInformalCarer.Should().Be(request.IsInformalCarer.ToUpper());
        }
        public void SetUp()
        {
            _mockDatabaseGateway          = new Mock <IDatabaseGateway>();
            _personalRelationshipsUseCase = new PersonalRelationshipsUseCase(_mockDatabaseGateway.Object);

            _mockDatabaseGateway.Setup(x => x.GetPersonalRelationshipTypeByDescription(_typeInRequest.Description))
            .Returns(_typeInRequest);

            var typeInExistingRelationship = PersonalRelationshipsHelper.CreatePersonalRelationshipType("partner");

            _mockDatabaseGateway.Setup(x => x.GetPersonalRelationshipTypeByDescription(typeInExistingRelationship.Description))
            .Returns(typeInExistingRelationship);

            _request = PersonalRelationshipsHelper.CreatePersonalRelationshipRequest(type: _typeInRequest.Description);

            _person      = TestHelpers.CreatePerson(_request.PersonId);
            _otherPerson = TestHelpers.CreatePerson(_request.OtherPersonId);

            var personalRelationship = PersonalRelationshipsHelper.CreatePersonalRelationship(_person, _otherPerson, typeInExistingRelationship);

            _person.PersonalRelationships = new List <PersonalRelationship>()
            {
                personalRelationship
            };

            _mockDatabaseGateway.Setup(x => x.GetPersonsByListOfIds(It.IsAny <List <long> >()))
            .Returns(new List <Person>()
            {
                _person, _otherPerson
            });

            _mockDatabaseGateway.Setup(x => x.GetPersonWithPersonalRelationshipsByPersonId(It.IsAny <long>(), It.IsAny <bool>()))
            .Returns(_person);

            _mockDatabaseGateway.Setup(x => x.CreatePersonalRelationship(It.IsAny <CreatePersonalRelationshipRequest>()))
            .Returns(personalRelationship);

            _mockDatabaseGateway.Setup(x => x.GetWorkerByEmail(It.IsAny <string>()))
            .Returns(TestHelpers.CreateWorker(email: _request.CreatedBy));
        }