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()); }
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)); }