From a11c63efe147f56fca081a26316772c926a1a1a6 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Fri, 12 May 2017 18:14:50 +0200 Subject: [PATCH] Strict json --- src/Squidex.Core/Contents/ContentData.cs | 2 +- .../Contents/MongoContentEntity.cs | 12 +++++++++--- .../Assets/FolderAssetStoreTests.cs | 8 -------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/Squidex.Core/Contents/ContentData.cs b/src/Squidex.Core/Contents/ContentData.cs index 04ac951a9..9c57cbc5c 100644 --- a/src/Squidex.Core/Contents/ContentData.cs +++ b/src/Squidex.Core/Contents/ContentData.cs @@ -145,7 +145,7 @@ namespace Squidex.Core.Contents if (decodeJsonField && field is JsonField) { var encodedValue = new ContentFieldData(); - + foreach (var languageValue in fieldValue.Value) { if (languageValue.Value == null || languageValue.Value.Type == JTokenType.Null) diff --git a/src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs b/src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs index fcc151133..4246efec4 100644 --- a/src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs +++ b/src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs @@ -10,14 +10,15 @@ using System; using System.Linq; using System.Text; using MongoDB.Bson; +using MongoDB.Bson.IO; using MongoDB.Bson.Serialization.Attributes; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Squidex.Core.Contents; using Squidex.Core.Schemas; using Squidex.Infrastructure; using Squidex.Infrastructure.MongoDb; using Squidex.Read.Contents; +using JsonConvert = Newtonsoft.Json.JsonConvert; // ReSharper disable ConvertIfStatementToConditionalTernaryExpression // ReSharper disable InvertIf @@ -26,6 +27,7 @@ namespace Squidex.Read.MongoDb.Contents { public sealed class MongoContentEntity : MongoEntity, IContentEntity { + private static readonly JsonWriterSettings Settings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict }; private const int MaxLength = 1024 * 1024; private ContentData contentData; @@ -69,7 +71,9 @@ namespace Squidex.Read.MongoDb.Contents { if (Data != null) { - contentData = JsonConvert.DeserializeObject(Data.ToJson()).ToNameModel(schema, true); + var jsonString = Data.ToJson(Settings); + + contentData = JsonConvert.DeserializeObject(jsonString).ToNameModel(schema, true); } else { @@ -81,7 +85,9 @@ namespace Squidex.Read.MongoDb.Contents { if (newContentData != null) { - Data = BsonDocument.Parse(JsonConvert.SerializeObject(newContentData.ToIdModel(schema, true))); + var jsonString = JsonConvert.SerializeObject(newContentData.ToIdModel(schema, true)); + + Data = BsonDocument.Parse(jsonString); } else { diff --git a/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs b/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs index a4964c015..0f31541ce 100644 --- a/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs +++ b/tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs @@ -41,14 +41,6 @@ namespace Squidex.Infrastructure.Assets Assert.True(Directory.Exists(testFolder)); } - [Fact] - public void Should_throw_if_path_is_not_valid() - { - var invalidSut = new FolderAssetStore("Z:\\Foo", new Mock().Object); - - Assert.Throws(() => invalidSut.Connect()); - } - [Fact] public Task Should_throw_exception_if_asset_not_found() {