mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-04-19 03:27:29 +02:00
Version 3.0.312.
This commit is contained in:
parent
310ea37085
commit
fd0e63cf10
94 changed files with 3189 additions and 6352 deletions
192
TestShareeLib/Repository/Response/TestRentalDescription.cs
Normal file
192
TestShareeLib/Repository/Response/TestRentalDescription.cs
Normal file
|
@ -0,0 +1,192 @@
|
|||
using NUnit.Framework;
|
||||
using System.Linq;
|
||||
using TINK.Repository.Response;
|
||||
|
||||
namespace TestShareeLib.Repository.Response
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestRentalDescription
|
||||
{
|
||||
[Test]
|
||||
public void TestDeserialize()
|
||||
{
|
||||
var tariffDescription = JsonConvertRethrow.DeserializeObject<RentalDescription>(
|
||||
@"{
|
||||
""id"": ""1"",
|
||||
""tarif_elements"" : {
|
||||
""6"": [
|
||||
""Gratis Mietzeit"",
|
||||
""30 Min / Tag""
|
||||
],
|
||||
""1"": [
|
||||
""Mietgebühr"",
|
||||
""2,00 € / 1 Std""
|
||||
],
|
||||
""4"": [
|
||||
""Max. Gebühr"",
|
||||
""40.00 € / Tag""
|
||||
]
|
||||
},
|
||||
""name"": ""REN E-Bike"",
|
||||
""rental_info"" : {
|
||||
""9"" : [
|
||||
""AGB"",
|
||||
""Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt""
|
||||
],
|
||||
""8"" : [
|
||||
""Tracking"",
|
||||
""Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!""
|
||||
]
|
||||
}
|
||||
}");
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.id,
|
||||
Is.EqualTo("1"));
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.name,
|
||||
Is.EqualTo("REN E-Bike"));
|
||||
|
||||
var tariffEntires = tariffDescription.tarif_elements.OrderBy(x => x.Key).Select(x => x.Value).ToList();
|
||||
Assert.That(
|
||||
tariffEntires.Count,
|
||||
Is.EqualTo(3));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[0][0],
|
||||
Is.EqualTo("Mietgebühr"));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[0][1],
|
||||
Is.EqualTo("2,00 € / 1 Std"));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[1][0],
|
||||
Is.EqualTo("Max. Gebühr"));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[1][1],
|
||||
Is.EqualTo("40.00 € / Tag"));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[2][0],
|
||||
Is.EqualTo("Gratis Mietzeit"));
|
||||
|
||||
Assert.That(
|
||||
tariffEntires[2][1],
|
||||
Is.EqualTo("30 Min / Tag"));
|
||||
|
||||
var rentalInfo = tariffDescription.rental_info.OrderBy(x => x.Key).Select(x => x.Value).ToList();
|
||||
Assert.That(
|
||||
rentalInfo.Count,
|
||||
Is.EqualTo(2));
|
||||
|
||||
Assert.That(
|
||||
rentalInfo[0][0],
|
||||
Is.EqualTo("Tracking"));
|
||||
|
||||
Assert.That(
|
||||
rentalInfo[0][1],
|
||||
Is.EqualTo("Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!"));
|
||||
|
||||
Assert.That(
|
||||
rentalInfo[1][0],
|
||||
Is.EqualTo("AGB"));
|
||||
|
||||
Assert.That(
|
||||
rentalInfo[1][1],
|
||||
Is.EqualTo("Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifies that missing elements are initialized correctly.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestDeserialize_Missing()
|
||||
{
|
||||
var tariffDescription = JsonConvertRethrow.DeserializeObject<RentalDescription>(
|
||||
@"{
|
||||
""id"" : ""5494"",
|
||||
""name"" : ""Tester Basic""
|
||||
}");
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.id,
|
||||
Is.EqualTo("5494"));
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.name,
|
||||
Is.EqualTo("Tester Basic"));
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.tarif_elements,
|
||||
Is.Null);
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.rental_info,
|
||||
Is.Null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Verifies that unknown elemts in JSON to not lead to firing of exceptions.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void TestDeserialize_NewElement()
|
||||
{
|
||||
var tariffDescription = JsonConvertRethrow.DeserializeObject<RentalDescription>(
|
||||
@"{
|
||||
""id"" : ""5494"",
|
||||
""name"" : ""Tester Basic"",
|
||||
""FancyNewElement"" : ""Yeah""
|
||||
}");
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.id,
|
||||
Is.EqualTo("5494"));
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.name,
|
||||
Is.EqualTo("Tester Basic"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestDeserializeDuplicateKey()
|
||||
{
|
||||
var tariffDescription = JsonConvertRethrow.DeserializeObject<RentalDescription>(
|
||||
@"{
|
||||
""id"": ""1"",
|
||||
""tarif_elements"" : {
|
||||
""6"": [
|
||||
""Gratis Mietzeit"",
|
||||
""30 Min / Tag""
|
||||
],
|
||||
""6"": [
|
||||
""Mietgebühr"",
|
||||
""2,00 € / 1 Std""
|
||||
],
|
||||
""4"": [
|
||||
""Max. Gebühr"",
|
||||
""40.00 € / Tag""
|
||||
]
|
||||
},
|
||||
""name"": ""REN E-Bike"",
|
||||
""rental_info"" : {
|
||||
""9"" : [
|
||||
""AGB"",
|
||||
""Mit der Mietrad Anmietung wird folgender Betreiber <a href='$varenv->{wwwhost}/site/agb.html' target='_blank'>AGB</a> zugestimmt""
|
||||
],
|
||||
""8"" : [
|
||||
""Tracking"",
|
||||
""Ich stimme der Speicherung (Tracking) meiner Fahrstrecke zwecks wissenschaftlicher Auswertung und Berechnung der CO2-Einsparung zu!""
|
||||
]
|
||||
}
|
||||
}");
|
||||
|
||||
Assert.That(
|
||||
tariffDescription.tarif_elements.Count,
|
||||
Is.EqualTo(2),
|
||||
"Dupliate elements are supposed to be ignored.");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue