示例#1
0
        public void TwoNonEmptyLowerCaseStringWithSameValueShouldBeEqual(string s1, string s2)
        {
            var r1 = NonEmptyLowerCaseString.TryCreate(s1, (NonEmptyString)"Value");
            var r2 = NonEmptyLowerCaseString.TryCreate(s2, (NonEmptyString)"Value");

            Helper.ShouldBeEqual(r1, r2);
        }
示例#2
0
        public void NonEmptyLowerCaseStringsWithDifferentValueShouldNotBeEqual()
        {
            var r1 = NonEmptyLowerCaseString.TryCreate("2", (NonEmptyString)"Value");
            var r2 = NonEmptyLowerCaseString.TryCreate("1", (NonEmptyString)"Value");

            Helper.ShouldNotBeEqual(r1, r2);
        }
示例#3
0
        public void ItShouldBePossibleToImplicitlyCastNonEmptyLowerCaseStringToNonEmptyString()
        {
            var            value      = Extensions.GetValue(() => NonEmptyLowerCaseString.TryCreate("1", (NonEmptyString)"Value"));
            NonEmptyString castResult = value;

            castResult.ShouldBeOfType <NonEmptyString>();
        }
示例#4
0
        public void NonEmptyLowerCaseStringCanBeCreatedFromNonEmptyValue()
        {
            var result = NonEmptyLowerCaseString.TryCreate("ABC", (NonEmptyString)"Value");

            result.IsSuccess.ShouldBeTrue();
            result.Value.Value.ShouldBe("abc");
        }
示例#5
0
        private static IResult <NonEmptyString> AddColumnOrReturnError(string orderBy, NonEmptyLowerCaseString nonEmptyOrderByItemLowerCaseTrimmed, ImmutableList <NonEmptyLowerCaseString> allowedColumnsLowerCase, ICollection <OrderBy> result)
        {
            var sortOrder = GetSortOrder(nonEmptyOrderByItemLowerCaseTrimmed);

            var ascending = true;

            var nonEmptyOrderByItemLowerCaseTrimmedColumn = nonEmptyOrderByItemLowerCaseTrimmed;

            if (sortOrder != null)
            {
                var column = nonEmptyOrderByItemLowerCaseTrimmed.Value.Substring(1).Trim();

                var columnNonEmptyLowerCaseStringResult = NonEmptyLowerCaseString.TryCreate(column, (NonEmptyString)nameof(column));

                if (columnNonEmptyLowerCaseStringResult.IsFailure)
                {
                    return(GetInvalidOrderExpressionMessage(orderBy).GetFailResult());
                }

                ascending = sortOrder.Value;

                nonEmptyOrderByItemLowerCaseTrimmedColumn = columnNonEmptyLowerCaseStringResult.Value;
            }

            var orderByOrErrorResult = AddColumnOrReturnError(allowedColumnsLowerCase, nonEmptyOrderByItemLowerCaseTrimmedColumn, ascending, result);

            return(orderByOrErrorResult.OnSuccess(Extensions.GetOkMessage));
        }
示例#6
0
        public static IResult <OrderByCollection, NonEmptyString> TryParse(string orderBy, ImmutableList <NonEmptyString> allowedColumns)
        {
            var result = new List <OrderBy>();

            var orderByTrimmed = orderBy.Trim();

            if (orderByTrimmed != string.Empty)
            {
                var allowedColumnsLowerCase = allowedColumns.Select(s => (NonEmptyLowerCaseString)s.Value).ToImmutableList();

                var nonEmptyLowerCaseStringResults = orderByTrimmed
                                                     .Split(',')
                                                     .Select(orderByItem => orderByItem.Trim())
                                                     .Select(orderByItemTrimmed => NonEmptyLowerCaseString.TryCreate(orderByItemTrimmed, (NonEmptyString)nameof(orderByItemTrimmed)));

                var orderByResult = GetOrderByResult(orderBy, nonEmptyLowerCaseStringResults, allowedColumnsLowerCase);

                if (orderByResult.IsFailure)
                {
                    return(orderByResult.Error.GetFailResult <OrderByCollection>());
                }

                result.AddRange(orderByResult.Value);
            }

            var collectionResult = OrderByCollection.TryCreate(result.ToImmutableList());

            return(collectionResult.OnSuccess(() => collectionResult.Value.GetOkMessage()));
        }
示例#7
0
        public void NonEmptyLowerCaseStringCannotBeCreatedFromEmptyValue()
        {
            var result = NonEmptyLowerCaseString.TryCreate(string.Empty, (NonEmptyString)"Value");

            result.IsSuccess.ShouldBeFalse();
        }