Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }