mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-23 15:46:29 +01:00
60 lines
2.4 KiB
C#
60 lines
2.4 KiB
C#
|
using Newtonsoft.Json;
|
|||
|
using NUnit.Framework;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using TINK.Model.Bike;
|
|||
|
using TINK.Model.State;
|
|||
|
|
|||
|
using BikeInfoMutable = TINK.Model.Bike.BC.BikeInfoMutable;
|
|||
|
|
|||
|
namespace TestTINKLib
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Exclude from build beause serialization... see below.
|
|||
|
/// </summary>
|
|||
|
[TestFixture]
|
|||
|
public class TestBikeSerializeJSON
|
|||
|
{
|
|||
|
[Test, Ignore("Disabled because serialization does no more work due to inheritance since commit ec14b93b.")]
|
|||
|
public void TestConstruct_SerializeJSON_Disposable()
|
|||
|
{
|
|||
|
// Create object to test.
|
|||
|
var l_oBikeSource = new BikeInfoMutable(3, false, new List<string> { "TINK" }, WheelType.Two, TypeOfBike.Cargo, p_oDateTimeProvider: () => new DateTime(1970, 1, 1));
|
|||
|
|
|||
|
// Verify prerequisites
|
|||
|
Assert.AreEqual(InUseStateEnum.Disposable, l_oBikeSource.State.Value);
|
|||
|
Assert.IsNull(l_oBikeSource.State.MailAddress);
|
|||
|
Assert.IsNull(l_oBikeSource.State.Code);
|
|||
|
Assert.IsNull(l_oBikeSource.State.From);
|
|||
|
|
|||
|
// Serialize object and verify.
|
|||
|
var l_oDetected = JsonConvert.SerializeObject(l_oBikeSource, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
|
|||
|
const string EXPECTED = @"
|
|||
|
{
|
|||
|
""Id"": 3,
|
|||
|
""CurrentStation"": null,
|
|||
|
""WheelType"": 1,
|
|||
|
""TypeOfBike"": 1,
|
|||
|
""State"": {
|
|||
|
""StateInfoObject"": {
|
|||
|
""$type"": ""TINK.Model.State.StateAvailableInfo, TINKLib""
|
|||
|
}
|
|||
|
}
|
|||
|
}";
|
|||
|
|
|||
|
Assert.AreEqual(
|
|||
|
TestHelper.PrepareXmlForStringCompare(EXPECTED),
|
|||
|
TestHelper.PrepareXmlForStringCompare(l_oDetected));
|
|||
|
|
|||
|
// Deserialize object.
|
|||
|
var l_oBikeTarget = JsonConvert.DeserializeObject<BikeInfoMutable>(l_oDetected, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto });
|
|||
|
|
|||
|
// Verify state.
|
|||
|
Assert.AreEqual(InUseStateEnum.Disposable, l_oBikeTarget.State.Value);
|
|||
|
Assert.IsNull(l_oBikeTarget.State.MailAddress);
|
|||
|
Assert.IsNull(l_oBikeTarget.State.Code);
|
|||
|
Assert.IsNull(l_oBikeTarget.State.From);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|