Ejemplo n.º 1
0
        public void KitchenSinkEquivalence()
        {
            var innerArray = new[] { "bar", "baz" };

            var response1 = new KitchenRequestDto
            {
                Sink = new KitchenSinkDto
                {
                    Matrix = new[] { new[] { new[] { 1, 2 }, new[] { 3, 4 } }, new[] { new[] { 5, 6 }, new[] { 7, 8 } } },
                    Crazy  = new[]
                    {
                        ServiceResult.Success <IReadOnlyList <IReadOnlyDictionary <string, IReadOnlyList <string> > > >(new[]
                        {
                            (IReadOnlyDictionary <string, IReadOnlyList <string> >) new Dictionary <string, IReadOnlyList <string> > {
                                ["foo"] = innerArray
                            },
                        }),
                    },
                },
            };

            var response2 = ServiceDataUtility.Clone(response1);

            ServiceDataUtility.AreEquivalentFieldValues(response1, response2).Should().BeTrue();

            innerArray[1] = "xyzzy";
            ServiceDataUtility.AreEquivalentFieldValues(response1, response2).Should().BeFalse();
        }
        public async Task <WidgetDto> CreateWidgetAsync(WidgetDto widget, CancellationToken cancellationToken)
        {
            var newWidget = widget != null?ServiceDataUtility.Clone(widget) : new WidgetDto();

            newWidget.Id = Guid.NewGuid().ToString("N");

            lock (m_lock)
                m_widgets.Add(newWidget.Id, newWidget);

            return(newWidget);
        }
Ejemplo n.º 3
0
        public void BasicCloning()
        {
            var first = new TestDto {
                Id = 3, Name = "Three", Children = new[] { new TestDto {
                                                               Name = "child"
                                                           } }
            };
            var second = ServiceDataUtility.Clone(first);

            first.IsEquivalentTo(second).Should().Be(true);
            second.Id += 1;
            first.IsEquivalentTo(second).Should().Be(false);
        }
        public void DictionaryClone()
        {
            var invalidRequest = new ServiceErrorDto {
                Code = ServiceErrors.InvalidRequest
            };
            var invalidResponse = new ServiceErrorDto {
                Code = ServiceErrors.InvalidResponse
            };
            var dto = ValueDto.Create(new Dictionary <string, ServiceErrorDto>
            {
                ["request"]  = invalidRequest,
                ["response"] = invalidResponse,
            });

            var clone = ServiceDataUtility.Clone(dto);

            clone.Should().NotBeSameAs(dto);
            clone.ErrorMapValue.Should().NotBeSameAs(dto.ErrorMapValue);
            clone.IsEquivalentTo(dto).Should().Be(true);
        }
Ejemplo n.º 5
0
 public override async Task <ServiceResult <RequiredResponseDto> > RequiredAsync(RequiredRequestDto request, CancellationToken cancellationToken = default) =>
 ServiceResult.Success(ServiceDataUtility.Clone(m_requiredResponse));
Ejemplo n.º 6
0
 public override async Task <ServiceResult <GetWidgetResponseDto> > GetWidgetAsync(GetWidgetRequestDto request, CancellationToken cancellationToken = default) =>
 ServiceResult.Success(new GetWidgetResponseDto {
     Widget = ServiceDataUtility.Clone(m_widgetResponse)
 });