public async Task SetRelationships(Guid id, IEnumerable <DraftRelationshipItem> items) { var relatedDrafts = items?.ToList(); relatedDrafts.CheckIfNull(nameof(items)); relatedDrafts.ForEach(r => { r.Id.CheckIfNull("Id"); r.Title.CheckIfNull("Title"); r.Url.Check("Url"); }); var relationship = new DraftRelationship { Id = id, Relationship = relatedDrafts }; await _draftRelationshipRepository.SetRelationship(relationship); await _draftRepository.SetRelationship(id, relatedDrafts.Count); }
public async Task GivenExistingRelationship_WhenGettingIt_ThenReturnsIt() { // Arrange var relationshipItem = new DraftRelationshipItem { Id = Guid.NewGuid(), Title = "First title", Url = new Uri("http://www.some.com/path/resource") }; var draftRelationship = new DraftRelationship { Id = Guid.NewGuid(), Relationship = new[] { relationshipItem } }; string endpoint = Endpoint.Replace("{id}", draftRelationship.Id.ToString()); Factory.DraftRelationshipRepositoryMock.Setup(m => m.Get(draftRelationship.Id)).Returns(Task.FromResult(draftRelationship)); // Act var response = await Client.GetAsync(endpoint); // Assert response.ShouldBeSuccessful(); var envelope = await response.ShouldBeOfType <IEnumerable <NewsDigestDto> >(); envelope.ShouldBeSuccessful(); envelope.Payload.Should().HaveCount(draftRelationship.Relationship.Count()); var item = envelope.Payload.First(); item.Id.Should().Be(relationshipItem.Id); item.Title.Should().Be(relationshipItem.Title); item.Url.Should().Be(relationshipItem.Url); }