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); }
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); }
public override async Task <ServiceResult <RequiredResponseDto> > RequiredAsync(RequiredRequestDto request, CancellationToken cancellationToken = default) => ServiceResult.Success(ServiceDataUtility.Clone(m_requiredResponse));
public override async Task <ServiceResult <GetWidgetResponseDto> > GetWidgetAsync(GetWidgetRequestDto request, CancellationToken cancellationToken = default) => ServiceResult.Success(new GetWidgetResponseDto { Widget = ServiceDataUtility.Clone(m_widgetResponse) });