public async Task A_single_page_of_contacts_is_fetched(ListContactFilter sut, IReadOnlyList <Property> properties) { var list = fixture.Build <ContactList>() .With(p => p.HasMore, false) .Without(p => p.ContactOffset) .Create(); mockListClient.Setup(p => p.GetContactsInListAsync(It.IsAny <long>(), It.IsAny <IReadOnlyList <IProperty> >(), It.IsAny <PropertyMode>(), It.IsAny <FormSubmissionMode>(), It.IsAny <bool>(), It.IsAny <int>(), It.IsAny <long?>())) .ReturnsAsync(list); var response = await sut.GetContacts(mockClient.Object, properties); CollectionAssert.AreEquivalent(response, list.Contacts); mockListClient.Verify(p => p.GetContactsInListAsync(It.IsAny <long>(), properties, PropertyMode.ValueOnly, FormSubmissionMode.None, false, It.IsAny <int>(), null), Times.Once); }
public async Task Multiple_pages_of_contacts_are_fetched(ListContactFilter sut, IReadOnlyList <Property> properties) { var listBuilder = fixture.Build <ContactList>(); var lists = new[] { listBuilder.With(p => p.HasMore, true).With(p => p.ContactOffset).Create(), listBuilder.With(p => p.HasMore, false).Without(p => p.ContactOffset).Create() }; mockListClient.SetupSequence(p => p.GetContactsInListAsync(It.IsAny <long>(), It.IsAny <IReadOnlyList <IProperty> >(), It.IsAny <PropertyMode>(), It.IsAny <FormSubmissionMode>(), It.IsAny <bool>(), It.IsAny <int>(), It.IsAny <long?>())) .ReturnsSequenceAsync(lists); var response = await sut.GetContacts(mockClient.Object, properties); CollectionAssert.AreEquivalent(lists.SelectMany(l => l.Contacts), response); mockListClient.Verify(p => p.GetContactsInListAsync(It.IsAny <long>(), properties, PropertyMode.ValueOnly, FormSubmissionMode.None, false, It.IsAny <int>(), null), Times.Once); mockListClient.Verify(p => p.GetContactsInListAsync(It.IsAny <long>(), properties, PropertyMode.ValueOnly, FormSubmissionMode.None, false, It.IsAny <int>(), lists.First().ContactOffset), Times.Once); }