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); }
public void NonEmptyLowerCaseStringsWithDifferentValueShouldNotBeEqual() { var r1 = NonEmptyLowerCaseString.TryCreate("2", (NonEmptyString)"Value"); var r2 = NonEmptyLowerCaseString.TryCreate("1", (NonEmptyString)"Value"); Helper.ShouldNotBeEqual(r1, r2); }
public void ItShouldBePossibleToImplicitlyCastNonEmptyLowerCaseStringToNonEmptyString() { var value = Extensions.GetValue(() => NonEmptyLowerCaseString.TryCreate("1", (NonEmptyString)"Value")); NonEmptyString castResult = value; castResult.ShouldBeOfType <NonEmptyString>(); }
public void NonEmptyLowerCaseStringCanBeCreatedFromNonEmptyValue() { var result = NonEmptyLowerCaseString.TryCreate("ABC", (NonEmptyString)"Value"); result.IsSuccess.ShouldBeTrue(); result.Value.Value.ShouldBe("abc"); }
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)); }
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())); }
public void NonEmptyLowerCaseStringCannotBeCreatedFromEmptyValue() { var result = NonEmptyLowerCaseString.TryCreate(string.Empty, (NonEmptyString)"Value"); result.IsSuccess.ShouldBeFalse(); }