forked from connamara/quickfixn
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConverterTests.cs
139 lines (121 loc) · 7.39 KB
/
ConverterTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using QuickFix;
using QuickFix.Fields.Converters;
namespace UnitTests
{
[TestFixture]
public class ConverterTests
{
[SetUp]
public void SetUp()
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
}
[TearDown]
public void TearDown()
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
}
[Test]
public void BoolConverterTest()
{
Assert.That(BoolConverter.Convert("Y"), Is.EqualTo(true));
Assert.That(BoolConverter.Convert("N"), Is.EqualTo(false));
Assert.That(BoolConverter.Convert(true), Is.EqualTo("Y"));
Assert.That(BoolConverter.Convert(false), Is.EqualTo("N"));
Assert.Throws(typeof(FieldConvertError),
delegate { BoolConverter.Convert("Z"); });
}
[Test]
public void CharConverterTest()
{
Assert.That(CharConverter.Convert('A'), Is.EqualTo("A"));
Assert.That(CharConverter.Convert("B"), Is.EqualTo('B'));
Assert.Throws(typeof(FieldConvertError),
delegate { CharConverter.Convert("AB"); });
}
[Test]
public void IntConverterTest()
{
Assert.That(IntConverter.Convert(233), Is.EqualTo("233"));
Assert.That(IntConverter.Convert(-233), Is.EqualTo("-233"));
Assert.That(IntConverter.Convert("444556"), Is.EqualTo(444556));
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert("+100"); });
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert("(100)"); });
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert("AB"); });
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert("2.3234"); });
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert(""); });
Assert.Throws(typeof(FieldConvertError), delegate { IntConverter.Convert(null); });
}
[Test]
public void DecimalConverterTest()
{
Assert.That(DecimalConverter.Convert(new Decimal(4.23322)), Is.EqualTo("4.23322"));
Assert.That(DecimalConverter.Convert(new Decimal(-4.23322)), Is.EqualTo("-4.23322"));
Assert.That(DecimalConverter.Convert("4332.33"), Is.EqualTo(new Decimal(4332.33)));
Assert.Throws(typeof(FieldConvertError), delegate { DecimalConverter.Convert("2.32a34"); });
Assert.Throws(typeof(FieldConvertError), delegate { DecimalConverter.Convert("+1.2"); });
Assert.Throws(typeof(FieldConvertError), delegate { DecimalConverter.Convert("(1.2)"); });
Assert.Throws(typeof(FieldConvertError), delegate { DecimalConverter.Convert(""); });
Assert.Throws(typeof(FieldConvertError), delegate { DecimalConverter.Convert(null); });
// check for a different culture than en-XX
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "tr-TR" );
Assert.That( DecimalConverter.Convert( "4332.33" ), Is.EqualTo( new Decimal( 4332.33 ) ) );
Assert.That( DecimalConverter.Convert( "-2.33" ), Is.EqualTo( new Decimal( -2.33 ) ) );
Assert.That( DecimalConverter.Convert( new Decimal( 4.23322 ) ), Is.EqualTo( "4.23322" ) );
Assert.That( DecimalConverter.Convert( new Decimal( -4.23322 ) ), Is.EqualTo( "-4.23322" ) );
}
[Test]
public void DecimalConverter_WithoutLeadingTrailingZeros()
{
Assert.That(DecimalConverter.Convert("23."), Is.EqualTo(new Decimal(23)));
Assert.That(DecimalConverter.Convert(".23"), Is.EqualTo(new Decimal(0.23)));
Assert.That(DecimalConverter.Convert("-.23"), Is.EqualTo(new Decimal(-0.23)));
}
[Test]
public void DateTimeConverterTest()
{
// DateTime types to string
Assert.That(DateTimeConverter.Convert(new DateTime(2002, 12, 01, 11, 03, 05)), Is.EqualTo("20021201-11:03:05.000"));
Assert.That(DateTimeConverter.Convert(new DateTime(2002, 12, 01, 11, 03, 05, 321)), Is.EqualTo("20021201-11:03:05.321"));
Assert.That(DateTimeConverter.Convert(new DateTime(2002, 12, 01, 11, 03, 05, 321), false), Is.EqualTo("20021201-11:03:05"));
Assert.That(DateTimeConverter.Convert(new DateTime(2002, 12, 01, 11, 03, 05, 321), true), Is.EqualTo("20021201-11:03:05.321"));
// 2 valid string-to-DateTime formats
Assert.That(DateTimeConverter.ConvertToDateTime("20100912-04:22:01"), Is.EqualTo(new DateTime(2010, 9, 12, 4, 22, 01, DateTimeKind.Utc)));
Assert.That(DateTimeConverter.ConvertToDateTime("20100912-04:22:01.123"), Is.EqualTo(new DateTime(2010, 9, 12, 4, 22, 01, 123, DateTimeKind.Utc)));
// invalid string-to-DateTime formats
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToDateTime(""); });
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToDateTime("20021201"); });
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToDateTime("20021201-11:03"); });
}
[Test]
public void DateOnlyConverterTest()
{
// DateTime types to string
Assert.That(DateTimeConverter.ConvertDateOnly(new DateTime(2002, 12, 01, 11, 03, 05, 321)), Is.EqualTo("20021201"));
// string-to-DateTime but time is zero
Assert.That(DateTimeConverter.ConvertToDateOnly("20100912"), Is.EqualTo(new DateTime(2010, 9, 12, 0, 0, 0, DateTimeKind.Utc)));
// invalid string-to-DateTime formats
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToDateOnly(""); });
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToDateOnly("20021201-11:03:00"); });
}
[Test]
public void TimeOnlyConverterTest()
{
// DateTime types to string
Assert.That(DateTimeConverter.ConvertTimeOnly(new DateTime(2002, 12, 01, 11, 03, 05)), Is.EqualTo("11:03:05.000"));
Assert.That(DateTimeConverter.ConvertTimeOnly(new DateTime(2002, 12, 01, 11, 03, 05, 321)), Is.EqualTo("11:03:05.321"));
Assert.That(DateTimeConverter.ConvertTimeOnly(new DateTime(2002, 12, 01, 11, 03, 05, 321), false), Is.EqualTo("11:03:05"));
Assert.That(DateTimeConverter.ConvertTimeOnly(new DateTime(2002, 12, 01, 11, 03, 05, 321), true), Is.EqualTo("11:03:05.321"));
// 2 valid string-to-DateTime formats, set date to Jan 1
Assert.That(DateTimeConverter.ConvertToTimeOnly("04:22:01"), Is.EqualTo(new DateTime(1980, 1, 1, 4, 22, 01, DateTimeKind.Utc)));
Assert.That(DateTimeConverter.ConvertToTimeOnly("04:22:01.123"), Is.EqualTo(new DateTime(1980, 1, 1, 4, 22, 01, 123, DateTimeKind.Utc)));
// invalid string-to-DateTime formats
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToTimeOnly(""); });
Assert.Throws(typeof(FieldConvertError), delegate { DateTimeConverter.ConvertToTimeOnly("20021201-11:03:00"); });
}
}
}