mirror of https://github.com/Squidex/squidex.git
5 changed files with 137 additions and 9 deletions
@ -0,0 +1,93 @@ |
|||
// ==========================================================================
|
|||
// BsonConverterTests.cs
|
|||
// Squidex Headless CMS
|
|||
// ==========================================================================
|
|||
// Copyright (c) Squidex Group
|
|||
// All rights reserved.
|
|||
// ==========================================================================
|
|||
|
|||
using System; |
|||
using FluentAssertions; |
|||
using Newtonsoft.Json.Linq; |
|||
using Xunit; |
|||
|
|||
#pragma warning disable SA1121 // Use built-in type alias
|
|||
|
|||
namespace Squidex.Infrastructure.MongoDb |
|||
{ |
|||
public class BsonConverterTests |
|||
{ |
|||
public class TestObject |
|||
{ |
|||
public TimeSpan TimeSpan { get; set; } |
|||
|
|||
public Guid Guid { get; set; } |
|||
|
|||
public DateTimeOffset DateTimeOffset { get; set; } |
|||
|
|||
public DateTime DateTime { get; set; } |
|||
|
|||
public Int64 Int64 { get; set; } |
|||
|
|||
public Int32 Int32 { get; set; } |
|||
|
|||
public Int16 Int16 { get; set; } |
|||
|
|||
public UInt64 UInt64 { get; set; } |
|||
|
|||
public UInt32 UInt32 { get; set; } |
|||
|
|||
public UInt16 UInt16 { get; set; } |
|||
|
|||
public double Float64 { get; set; } |
|||
|
|||
public float Float32 { get; set; } |
|||
|
|||
public bool Bool { get; set; } |
|||
|
|||
public byte Byte { get; set; } |
|||
|
|||
public byte[] Bytes { get; set; } |
|||
|
|||
public string String { get; set; } |
|||
|
|||
public string[] Strings { get; set; } |
|||
|
|||
public Uri Uri { get; set; } |
|||
|
|||
public static TestObject CreateWithValues() |
|||
{ |
|||
return new TestObject |
|||
{ |
|||
Bool = true, |
|||
Byte = 0x2, |
|||
Bytes = new byte[] { 0x10, 0x12, 0x13 }, |
|||
DateTimeOffset = DateTime.Today, |
|||
DateTime = DateTime.Today, |
|||
Float32 = 32.5f, |
|||
Float64 = 32.5d, |
|||
Guid = Guid.NewGuid(), |
|||
Int64 = 64, |
|||
Int32 = 32, |
|||
Int16 = 16, |
|||
String = "squidex", |
|||
Strings = new[] { "hello", "squidex " }, |
|||
TimeSpan = TimeSpan.FromSeconds(123), |
|||
UInt64 = 164, |
|||
UInt32 = 132, |
|||
UInt16 = 116, |
|||
Uri = new Uri("http://squidex.io") |
|||
}; |
|||
} |
|||
} |
|||
|
|||
[Fact] |
|||
public void Should_serialize_and_deserialize_to_bson_with_json() |
|||
{ |
|||
var source = TestObject.CreateWithValues(); |
|||
var target = JObject.FromObject(source).ToBson().ToJson().ToObject<TestObject>(); |
|||
|
|||
target.ShouldBeEquivalentTo(source); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue