public async Task WithNoCursorAndLimitWillReturnTheFirstPageOfTenanciesWithTheNextCursor()
        {
            var faker            = new Faker();
            var allSavedEntities = Enumerable.Range(0, 25)
                                   .Select(r =>
            {
                var tagRef      = $"{r}{faker.Random.Int(1000, 9999):0000}/{faker.Random.Int(1, 9)}";
                var agreementId = GetLetterFromAlphabetPosition(r);
                var tenureId    = GetLetterFromAlphabetPosition(r + 2);
                return(E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, tagRef, agreementId, tenureId));
            }).ToList();

            var response = await CallApiListEndpointWithQueryString("").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Should().BeEquivalentTo(allSavedEntities.Take(20));

            var finalTagRef    = allSavedEntities.ElementAt(19).TenancyAgreementReference;
            var expectedCursor = $"{finalTagRef.Substring(0, 6)}{finalTagRef.Substring(7, 1)}";

            returnedTenancies.NextCursor.Should().Be(expectedCursor);
        }
        public async Task WithNoQueryParametersWillListAllStoredTenancies()
        {
            var expectedResponses = new List <TenancyInformationResponse>
            {
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "12345/2", "a", "x"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "54326/9", "b", "y"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "453627/2", "c", "z"),
            };

            var response = await CallApiListEndpointWithQueryString("").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Should().BeEquivalentTo(expectedResponses);
        }
        public async Task WithAddressQueryParametersOnlyReturnMatchingTenancies()
        {
            var expectedResponses = new List <TenancyInformationResponse>
            {
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "12345/2", "a", "x", "1 Hillman Road"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "54326/9", "b", "y", "6 HillmanRoad"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "453627/2", "c", "z", "8 Fox Street"),
            };

            var response = await CallApiListEndpointWithQueryString("?address=hillmanroad").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Count.Should().Be(2);
            returnedTenancies.Tenancies.Should().BeEquivalentTo(expectedResponses.GetRange(0, 2));
        }
        public async Task WithPropertyReferenceQueryParameterReturnMatchingTenancies()
        {
            var expectedResponses = new List <TenancyInformationResponse>
            {
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "12345/2", "a", "x", propertyReference: "458793848572"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "54326/9", "b", "y", propertyReference: "293885029348"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "453627/2", "c", "z", propertyReference: "359819238534"),
            };

            var response = await CallApiListEndpointWithQueryString("?property_reference=458793848572").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Count.Should().Be(1);
            returnedTenancies.Tenancies.First().Should().BeEquivalentTo(expectedResponses.First());
        }
        public async Task WithLeaseholdersOnlyOptionReturnOnlyLeaseholders()
        {
            var expectedResponses = new List <TenancyInformationResponse>
            {
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "12345/2", "a", "LEA"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "54326/9", "b", "FRS"),
                E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, "453627/2", "c", "COM"),
            };

            var response = await CallApiListEndpointWithQueryString("?leasehold_only=true").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Count.Should().Be(1);
            returnedTenancies.Tenancies.First().Should().BeEquivalentTo(expectedResponses.First());
        }
Пример #6
0
        public async Task GetResidentInformationByIdReturn200()
        {
            var tenancyReference = "1234/456";
            var expectedResponse = E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, tenancyReference);

            RemoveAddressAndResidentExpectedDetails(expectedResponse);

            var uri        = new Uri($"api/v1/tenancies/1234-456", UriKind.Relative);
            var response   = Client.GetAsync(uri);
            var statusCode = response.Result.StatusCode;

            statusCode.Should().Be(200);

            var content       = response.Result.Content;
            var stringContent = await content.ReadAsStringAsync().ConfigureAwait(true);

            var convertedResponse = JsonConvert.DeserializeObject <TenancyInformationResponse>(stringContent);

            convertedResponse.Should().BeEquivalentTo(expectedResponse);
        }
        public async Task WithCursorAndLimitGivenWillCorrectlyPaginateTenanciesReturned()
        {
            var faker            = new Faker();
            var allSavedEntities = Enumerable.Range(0, 17)
                                   .Select(r =>
            {
                var tagRef      = $"{r}{faker.Random.Int(1000, 9999):0000}/{faker.Random.Int(1, 9)}";
                var agreementId = GetLetterFromAlphabetPosition(r);
                var tenureId    = GetLetterFromAlphabetPosition(r + 2);
                return(E2ETestHelper.AddPersonWithRelatedEntitiesToDb(DatabaseContext, tagRef, agreementId, tenureId));
            }).ToList();

            var finalTagRef = allSavedEntities.ElementAt(2).TenancyAgreementReference;
            var cursor      = $"{finalTagRef.Substring(0, 5)}{finalTagRef.Substring(6, 1)}";

            var response = await CallApiListEndpointWithQueryString($"?limit=12&cursor={cursor}").ConfigureAwait(true);

            response.StatusCode.Should().Be(200);

            var returnedTenancies = await DeserializeResponse(response).ConfigureAwait(true);

            returnedTenancies.Tenancies.Should().BeEquivalentTo(allSavedEntities.Skip(3).Take(12));
        }