From b068590bb6334c1ceeb2f0fdb22a76a28afcc967 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Sat, 8 Jul 2017 19:53:44 +0200 Subject: [PATCH] Some more tests and namespaces fixed --- .../Contents/MongoContentRepository.cs | 2 +- .../{Builders => Edm}/EdmModelBuilder.cs | 2 +- .../ContentSchemaBuilder.cs | 2 +- .../StringExtensions.cs | 10 +++--- src/Squidex/Config/Domain/ReadModule.cs | 2 +- .../Generator/SchemaSwaggerGenerator.cs | 2 +- .../MongoDb/Contents/ODataQueryTests.cs | 2 +- .../Assets/FolderAssetStoreTests.cs | 6 ++++ .../StringExtensionsTests.cs | 31 +++++++++++++++++-- 9 files changed, 46 insertions(+), 13 deletions(-) rename src/Squidex.Domain.Apps.Read/Contents/{Builders => Edm}/EdmModelBuilder.cs (98%) rename src/Squidex.Domain.Apps.Read/Contents/{Builders => JsonSchema}/ContentSchemaBuilder.cs (97%) diff --git a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs index 389c16e34..2f06a7928 100644 --- a/src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs +++ b/src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs @@ -15,7 +15,7 @@ using MongoDB.Bson; using MongoDB.Driver; using Squidex.Domain.Apps.Read.Apps; using Squidex.Domain.Apps.Read.Contents; -using Squidex.Domain.Apps.Read.Contents.Builders; +using Squidex.Domain.Apps.Read.Contents.Edm; using Squidex.Domain.Apps.Read.Contents.Repositories; using Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors; using Squidex.Domain.Apps.Read.Schemas; diff --git a/src/Squidex.Domain.Apps.Read/Contents/Builders/EdmModelBuilder.cs b/src/Squidex.Domain.Apps.Read/Contents/Edm/EdmModelBuilder.cs similarity index 98% rename from src/Squidex.Domain.Apps.Read/Contents/Builders/EdmModelBuilder.cs rename to src/Squidex.Domain.Apps.Read/Contents/Edm/EdmModelBuilder.cs index 6dabf6faf..6ca1e56b3 100644 --- a/src/Squidex.Domain.Apps.Read/Contents/Builders/EdmModelBuilder.cs +++ b/src/Squidex.Domain.Apps.Read/Contents/Edm/EdmModelBuilder.cs @@ -16,7 +16,7 @@ using Squidex.Domain.Apps.Read.Schemas; using Squidex.Domain.Apps.Read.Utils; using Squidex.Infrastructure; -namespace Squidex.Domain.Apps.Read.Contents.Builders +namespace Squidex.Domain.Apps.Read.Contents.Edm { public sealed class EdmModelBuilder : CachingProviderBase { diff --git a/src/Squidex.Domain.Apps.Read/Contents/Builders/ContentSchemaBuilder.cs b/src/Squidex.Domain.Apps.Read/Contents/JsonSchema/ContentSchemaBuilder.cs similarity index 97% rename from src/Squidex.Domain.Apps.Read/Contents/Builders/ContentSchemaBuilder.cs rename to src/Squidex.Domain.Apps.Read/Contents/JsonSchema/ContentSchemaBuilder.cs index d652322be..8db95b8b9 100644 --- a/src/Squidex.Domain.Apps.Read/Contents/Builders/ContentSchemaBuilder.cs +++ b/src/Squidex.Domain.Apps.Read/Contents/JsonSchema/ContentSchemaBuilder.cs @@ -10,7 +10,7 @@ using NJsonSchema; using Squidex.Domain.Apps.Core.Schemas; using Squidex.Infrastructure; -namespace Squidex.Domain.Apps.Read.Contents.Builders +namespace Squidex.Domain.Apps.Read.Contents.JsonSchema { public sealed class ContentSchemaBuilder { diff --git a/src/Squidex.Infrastructure/StringExtensions.cs b/src/Squidex.Infrastructure/StringExtensions.cs index 1e7ab2f0d..bb493489e 100644 --- a/src/Squidex.Infrastructure/StringExtensions.cs +++ b/src/Squidex.Infrastructure/StringExtensions.cs @@ -27,9 +27,9 @@ namespace Squidex.Infrastructure return value != null && PropertyNameRegex.IsMatch(value); } - public static string ToCamelCase(this string value) + public static string WithFallback(this string value, string fallback) { - return char.ToLower(value[0]) + value.Substring(1); + return !string.IsNullOrWhiteSpace(value) ? value.Trim() : fallback; } public static string ToPascalCase(this string value) @@ -37,9 +37,11 @@ namespace Squidex.Infrastructure return string.Concat(value.Split(new[] { '-', '_', ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(c => char.ToUpper(c[0]) + c.Substring(1))); } - public static string WithFallback(this string value, string fallback) + public static string ToCamelCase(this string value) { - return !string.IsNullOrWhiteSpace(value) ? value.Trim() : fallback; + value = value.ToPascalCase(); + + return char.ToLower(value[0]) + value.Substring(1); } } } diff --git a/src/Squidex/Config/Domain/ReadModule.cs b/src/Squidex/Config/Domain/ReadModule.cs index 9fdd146f0..2e81391da 100644 --- a/src/Squidex/Config/Domain/ReadModule.cs +++ b/src/Squidex/Config/Domain/ReadModule.cs @@ -15,7 +15,7 @@ using Squidex.Domain.Apps.Read.Apps; using Squidex.Domain.Apps.Read.Apps.Services; using Squidex.Domain.Apps.Read.Apps.Services.Implementations; using Squidex.Domain.Apps.Read.Contents; -using Squidex.Domain.Apps.Read.Contents.Builders; +using Squidex.Domain.Apps.Read.Contents.Edm; using Squidex.Domain.Apps.Read.History; using Squidex.Domain.Apps.Read.Schemas; using Squidex.Domain.Apps.Read.Schemas.Services; diff --git a/src/Squidex/Controllers/ContentApi/Generator/SchemaSwaggerGenerator.cs b/src/Squidex/Controllers/ContentApi/Generator/SchemaSwaggerGenerator.cs index 7477f36fa..ee751a923 100644 --- a/src/Squidex/Controllers/ContentApi/Generator/SchemaSwaggerGenerator.cs +++ b/src/Squidex/Controllers/ContentApi/Generator/SchemaSwaggerGenerator.cs @@ -13,7 +13,7 @@ using NJsonSchema; using NSwag; using Squidex.Domain.Apps.Core; using Squidex.Domain.Apps.Core.Schemas; -using Squidex.Domain.Apps.Read.Contents.Builders; +using Squidex.Domain.Apps.Read.Contents.JsonSchema; using Squidex.Infrastructure; using Squidex.Pipeline.Swagger; diff --git a/tests/Squidex.Domain.Apps.Read.Tests/MongoDb/Contents/ODataQueryTests.cs b/tests/Squidex.Domain.Apps.Read.Tests/MongoDb/Contents/ODataQueryTests.cs index f713f2314..e1e8a1242 100644 --- a/tests/Squidex.Domain.Apps.Read.Tests/MongoDb/Contents/ODataQueryTests.cs +++ b/tests/Squidex.Domain.Apps.Read.Tests/MongoDb/Contents/ODataQueryTests.cs @@ -17,7 +17,7 @@ using Moq; using Squidex.Domain.Apps.Core; using Squidex.Domain.Apps.Core.Schemas; using Squidex.Domain.Apps.Read.Apps; -using Squidex.Domain.Apps.Read.Contents.Builders; +using Squidex.Domain.Apps.Read.Contents.Edm; using Squidex.Domain.Apps.Read.MongoDb.Contents.Visitors; using Squidex.Domain.Apps.Read.Schemas; using Squidex.Infrastructure; diff --git a/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs b/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs index af192e464..4f8f6ee35 100644 --- a/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs +++ b/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs @@ -41,6 +41,12 @@ namespace Squidex.Infrastructure.Assets Assert.True(Directory.Exists(testFolder)); } + [Fact] + public void Should_throw_when_creating_directory_failed() + { + Assert.Throws(() => new FolderAssetStore("Z:\\Foo", new Mock().Object).Connect()); + } + [Fact] public Task Should_throw_exception_if_asset_not_found() { diff --git a/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs b/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs index 6deb7b87b..e752e5653 100644 --- a/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs +++ b/tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs @@ -18,12 +18,37 @@ namespace Squidex.Infrastructure [InlineData("my property", "MyProperty")] [InlineData("my_property", "MyProperty")] [InlineData("my-property", "MyProperty")] - [InlineData("my property", "MyProperty")] - [InlineData("my__property", "MyProperty")] - [InlineData("my--property", "MyProperty")] public void Should_convert_to_pascal_case(string input, string output) { Assert.Equal(output, input.ToPascalCase()); } + + [Theory] + [InlineData("My", "my")] + [InlineData("MyProperty ", "myProperty")] + [InlineData("My property", "myProperty")] + [InlineData("My_property", "myProperty")] + [InlineData("My-property", "myProperty")] + public void Should_convert_to_camel_case(string input, string output) + { + Assert.Equal(output, input.ToCamelCase()); + } + + [Theory] + [InlineData(null)] + [InlineData("")] + [InlineData(" ")] + public void Should_provide_fallback_if_invalid(string value) + { + Assert.Equal("fallback", value.WithFallback("fallback")); + } + + [Fact] + public void Should_provide_value() + { + const string value = "value"; + + Assert.Equal(value, value.WithFallback("fallback")); + } } }