public void RequiredBodyFieldMissing()
    {
        var dto = new GetWidgetBatchRequestDto();

        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetRequiredFieldErrorMessage("ids"));
    }
Beispiel #2
0
 /// <summary>
 /// Asserts that the subject result is equivalent to the expected result.
 /// </summary>
 public AndConstraint <TAssertions> BeResult(TServiceResult?expected)
 {
     Execute.Assertion
     .ForCondition(ServiceDataUtility.AreEquivalentResults(Subject, expected))
     .FailWith("Expected {context:service result} to be \n {0}\n  but found\n {1}", expected, Subject);
     return(new AndConstraint <TAssertions>((TAssertions)this));
 }
Beispiel #3
0
        private string?GetValidationErrorMessage()
        {
            if (Name == null)
            {
                return(ServiceDataUtility.GetRequiredFieldErrorMessage("name"));
            }

            if (Id != null && Id < 0)
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("id", "Must be at least 0."));
            }
            if (Name != null && Name.Length < 1)
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("name", "Length must be at least 1."));
            }
            if (Name != null && Name.Length > 10)
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("name", "Length must be at most 10."));
            }
            if (Name != null && !s_validNameRegex.IsMatch(Name))
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("name", $"Must match regular expression: {s_validNameRegex}"));
            }

            return(null);
        }
Beispiel #4
0
 public override bool IsEquivalentTo(TestDto?other)
 {
     return(other != null &&
            other.Id == Id &&
            other.Name == Name &&
            ServiceDataUtility.AreEquivalentArrays(other.Children, Children, ServiceDataUtility.AreEquivalentDtos));
 }
 /// <summary>
 /// Determines if two DTOs are equivalent.
 /// </summary>
 public override bool IsEquivalentTo(KitchenSinkDto other)
 {
     return(other != null &&
            ServiceDataUtility.AreEquivalentFieldValues(Matrix, other.Matrix) &&
            ServiceDataUtility.AreEquivalentFieldValues(Crazy, other.Crazy) &&
            OldField == other.OldField);
 }
Beispiel #6
0
 public override bool IsEquivalentTo(CreateWidgetResponseDto?other)
 {
     return(other != null &&
            ServiceDataUtility.AreEquivalentDtos(Widget, other.Widget) &&
            Url == other.Url &&
            ETag == other.ETag);
 }
        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();
        }
 /// <summary>
 /// Determines if two DTOs are equivalent.
 /// </summary>
 public override bool IsEquivalentTo(PreferenceDto other)
 {
     return(other != null &&
            IsBoolean == other.IsBoolean &&
            ServiceDataUtility.AreEquivalentFieldValues(Booleans, other.Booleans) &&
            Double == other.Double &&
            ServiceDataUtility.AreEquivalentFieldValues(Doubles, other.Doubles) &&
            Integer == other.Integer &&
            ServiceDataUtility.AreEquivalentFieldValues(Integers, other.Integers) &&
            String == other.String &&
            ServiceDataUtility.AreEquivalentFieldValues(Strings, other.Strings) &&
            ServiceDataUtility.AreEquivalentBytes(Bytes, other.Bytes) &&
            ServiceDataUtility.AreEquivalentFieldValues(Byteses, other.Byteses) &&
            WidgetField == other.WidgetField &&
            ServiceDataUtility.AreEquivalentFieldValues(WidgetFields, other.WidgetFields) &&
            ServiceDataUtility.AreEquivalentDtos(Widget, other.Widget) &&
            ServiceDataUtility.AreEquivalentFieldValues(Widgets, other.Widgets) &&
            ServiceDataUtility.AreEquivalentResults(Result, other.Result) &&
            ServiceDataUtility.AreEquivalentFieldValues(Results, other.Results) &&
            BigInteger == other.BigInteger &&
            ServiceDataUtility.AreEquivalentFieldValues(BigIntegers, other.BigIntegers) &&
            Decimal == other.Decimal &&
            ServiceDataUtility.AreEquivalentFieldValues(Decimals, other.Decimals) &&
            ServiceDataUtility.AreEquivalentDtos(Error, other.Error) &&
            ServiceDataUtility.AreEquivalentFieldValues(Errors, other.Errors) &&
            ServiceDataUtility.AreEquivalentObjects(Object, other.Object) &&
            ServiceDataUtility.AreEquivalentFieldValues(Objects, other.Objects) &&
            ServiceDataUtility.AreEquivalentFieldValues(NamedStrings, other.NamedStrings) &&
            ServiceDataUtility.AreEquivalentFieldValues(NamedWidgets, other.NamedWidgets));
 }
 public override bool IsEquivalentTo(GetWidgetResponseDto?other)
 {
     return(other != null &&
            ServiceDataUtility.AreEquivalentDtos(Widget, other.Widget) &&
            ETag == other.ETag &&
            NotModified == other.NotModified);
 }
Beispiel #10
0
 /// <summary>
 /// Determines if two DTOs are equivalent.
 /// </summary>
 public override bool IsEquivalentTo(EditWidgetRequestDto other)
 {
     return(other != null &&
            Id == other.Id &&
            ServiceDataUtility.AreEquivalentFieldValues(Ops, other.Ops) &&
            Weight == other.Weight);
 }
Beispiel #11
0
 /// <summary>
 /// Determines if two DTOs are equivalent.
 /// </summary>
 public override bool IsEquivalentTo(MixedResponseDto other)
 {
     return(other != null &&
            Header == other.Header &&
            Normal == other.Normal &&
            ServiceDataUtility.AreEquivalentObjects(Body, other.Body) &&
            Empty == other.Empty);
 }
    public void RequiredWidgetMatrixNameMissing()
    {
        var dto = CreateRequiredRequest();

        dto.WidgetMatrix = new[] { new[] { new WidgetDto() } };
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("widgetMatrix[0][0]", ServiceDataUtility.GetRequiredFieldErrorMessage("name")));
    }
    public void ValidateWidgetIdIsPositive()
    {
        var dto = CreateWidget();

        dto.Id = -1;
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("id", "Must be at least 0."));
    }
    public void RequiredWidgetResultsNameMissing()
    {
        var dto = CreateRequiredRequest();

        dto.WidgetResults = new[] { ServiceResult.Success(new WidgetDto()) };
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("widgetResults[0]", ServiceDataUtility.GetRequiredFieldErrorMessage("name")));
    }
    public void RequiredNormalResponseFieldMissing()
    {
        var dto = CreateRequiredResponse();

        dto.Normal = null;
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetRequiredFieldErrorMessage("normal"));
    }
    public void RequiredQueryFieldMissing()
    {
        var dto = CreateRequiredRequest();

        dto.Query = null;
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetRequiredFieldErrorMessage("query"));
    }
    public void ValidateFailsMoreThanCount()
    {
        var dto = CreateRequiredRequest();

        dto.Point = new[] { 0.0, 1.0, 2.0 };
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("point", "Count must be at most 2."));
    }
Beispiel #18
0
 /// <summary>
 /// Determines if two DTOs are equivalent.
 /// </summary>
 public override bool IsEquivalentTo(GetWidgetsResponseDto other)
 {
     return(other != null &&
            ServiceDataUtility.AreEquivalentFieldValues(Widgets, other.Widgets) &&
            Total == other.Total &&
            TotalWeight == other.TotalWeight &&
            ServiceDataUtility.AreEquivalentDtos(Job, other.Job));
 }
Beispiel #19
0
        private string?GetValidationErrorMessage()
        {
            if (Ids == null)
            {
                return(ServiceDataUtility.GetRequiredFieldErrorMessage("ids"));
            }

            return(null);
        }
    public void ValidateDeleteWidgetHasPositiveId()
    {
        var dto = new DeleteWidgetRequestDto {
            Id = -1
        };

        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("id", "Must be at least 0."));
    }
    public void ServiceResultNoValueClone()
    {
        var result = ServiceResult.Success();

        var clone = Serializer.Clone(result);

        clone.Should().NotBeSameAs(result);
        ServiceDataUtility.AreEquivalentResults(clone, result).Should().Be(true);
    }
    public void ServiceResultFailureClone()
    {
        var result = ServiceResult.Failure(ServiceErrors.CreateConflict());

        var clone = Serializer.Clone(result);

        clone.Should().NotBeSameAs(result);
        ServiceDataUtility.AreEquivalentResults(clone, result).Should().Be(true);
    }
Beispiel #23
0
        private string?GetValidationErrorMessage()
        {
            if (Id != null && Id < 0)
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("id", "Must be at least 0."));
            }

            return(null);
        }
Beispiel #24
0
        private string?GetValidationErrorMessage()
        {
            if (Enum != null && !Enum.Value.IsDefined())
            {
                return(ServiceDataUtility.GetInvalidFieldErrorMessage("enum", "Must be an expected enum value."));
            }

            return(null);
        }
Beispiel #25
0
 public override bool IsEquivalentTo(ValueDto?other)
 {
     return(other != null &&
            BooleanValue == other.BooleanValue &&
            StringValue == other.StringValue &&
            ServiceDataUtility.AreEquivalentFieldValues(ErrorArrayValue, other.ErrorArrayValue) &&
            ServiceDataUtility.AreEquivalentFieldValues(BooleanMapValue, other.BooleanMapValue) &&
            ServiceDataUtility.AreEquivalentFieldValues(ErrorMapValue, other.ErrorMapValue));
 }
    public void ValidateWidgetNameLength()
    {
        var dto = new WidgetDto {
            Id = 1, Name = "ExcessivelyLongName"
        };

        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("name", "Length must be at most 10."));
    }
    public void ValidateWidgetNameMatchesPattern()
    {
        var dto = new WidgetDto {
            Id = 1, Name = "%%widget%%"
        };

        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("name", "Must match regular expression: ^[_a-zA-Z0-9]+$"));
    }
    public void ValidateBatchWidgetFailsExceedingMaximumIds()
    {
        var dto = new GetWidgetBatchRequestDto
        {
            Ids = new[] { 1, 2, 3, 4, 50, 200, 300, 500, 700, 1000, 1001 },
        };

        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("ids", "Count must be at most 10."));
    }
    public void RequiredWidgetMapNameMissing()
    {
        var dto = CreateRequiredRequest();

        dto.WidgetMap = new Dictionary <string, WidgetDto> {
            { "key", new WidgetDto() }
        };
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("widgetMap.key", ServiceDataUtility.GetRequiredFieldErrorMessage("name")));
    }
    public void RequiredHasWidgetNameMissing()
    {
        var dto = CreateRequiredRequest();

        dto.HasWidget = new HasWidgetDto {
            Widget = new WidgetDto()
        };
        dto.Validate(out var errorMessage).Should().BeFalse();
        errorMessage.Should().Be(ServiceDataUtility.GetInvalidFieldErrorMessage("hasWidget", ServiceDataUtility.GetInvalidFieldErrorMessage("widget", ServiceDataUtility.GetRequiredFieldErrorMessage("name"))));
    }