Browse Source

Strict json

pull/65/head
Sebastian Stehle 10 years ago
parent
commit
a11c63efe1
  1. 2
      src/Squidex.Core/Contents/ContentData.cs
  2. 12
      src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs
  3. 8
      tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs

2
src/Squidex.Core/Contents/ContentData.cs

@ -145,7 +145,7 @@ namespace Squidex.Core.Contents
if (decodeJsonField && field is JsonField) if (decodeJsonField && field is JsonField)
{ {
var encodedValue = new ContentFieldData(); var encodedValue = new ContentFieldData();
foreach (var languageValue in fieldValue.Value) foreach (var languageValue in fieldValue.Value)
{ {
if (languageValue.Value == null || languageValue.Value.Type == JTokenType.Null) if (languageValue.Value == null || languageValue.Value.Type == JTokenType.Null)

12
src/Squidex.Read.MongoDb/Contents/MongoContentEntity.cs

@ -10,14 +10,15 @@ using System;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using MongoDB.Bson; using MongoDB.Bson;
using MongoDB.Bson.IO;
using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson.Serialization.Attributes;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Squidex.Core.Contents; using Squidex.Core.Contents;
using Squidex.Core.Schemas; using Squidex.Core.Schemas;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.MongoDb; using Squidex.Infrastructure.MongoDb;
using Squidex.Read.Contents; using Squidex.Read.Contents;
using JsonConvert = Newtonsoft.Json.JsonConvert;
// ReSharper disable ConvertIfStatementToConditionalTernaryExpression // ReSharper disable ConvertIfStatementToConditionalTernaryExpression
// ReSharper disable InvertIf // ReSharper disable InvertIf
@ -26,6 +27,7 @@ namespace Squidex.Read.MongoDb.Contents
{ {
public sealed class MongoContentEntity : MongoEntity, IContentEntity public sealed class MongoContentEntity : MongoEntity, IContentEntity
{ {
private static readonly JsonWriterSettings Settings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict };
private const int MaxLength = 1024 * 1024; private const int MaxLength = 1024 * 1024;
private ContentData contentData; private ContentData contentData;
@ -69,7 +71,9 @@ namespace Squidex.Read.MongoDb.Contents
{ {
if (Data != null) if (Data != null)
{ {
contentData = JsonConvert.DeserializeObject<ContentData>(Data.ToJson()).ToNameModel(schema, true); var jsonString = Data.ToJson(Settings);
contentData = JsonConvert.DeserializeObject<ContentData>(jsonString).ToNameModel(schema, true);
} }
else else
{ {
@ -81,7 +85,9 @@ namespace Squidex.Read.MongoDb.Contents
{ {
if (newContentData != null) 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 else
{ {

8
tests/Squidex.Infrastructure.Tests/Assets/FolderAssetStoreTests.cs

@ -41,14 +41,6 @@ namespace Squidex.Infrastructure.Assets
Assert.True(Directory.Exists(testFolder)); Assert.True(Directory.Exists(testFolder));
} }
[Fact]
public void Should_throw_if_path_is_not_valid()
{
var invalidSut = new FolderAssetStore("Z:\\Foo", new Mock<ISemanticLog>().Object);
Assert.Throws<ConfigurationException>(() => invalidSut.Connect());
}
[Fact] [Fact]
public Task Should_throw_exception_if_asset_not_found() public Task Should_throw_exception_if_asset_not_found()
{ {

Loading…
Cancel
Save