This repository has been archived by the owner on May 25, 2021. It is now read-only.
/
CassandraTypeTest.cs
109 lines (88 loc) · 2.84 KB
/
CassandraTypeTest.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
using System;
using System.Linq;
using Xunit;
namespace FluentCassandra.Types
{
public class CassandraTypeTest
{
[Fact]
public void Parse_CompositeType()
{
// arrange
Type expected = typeof(CompositeType);
var expectedInternals = new[] { typeof(TimeUUIDType), typeof(UTF8Type) };
string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";
// act
var cassandraType = new CassandraType(cassandraString);
var instance = cassandraType.CreateInstance() as CompositeType;
Type actual = cassandraType.FluentType;
// assert
Assert.Equal(expected, actual);
Assert.Equal(2, instance.ComponentTypeHints.Count);
foreach (var e in expectedInternals)
Assert.True(instance.ComponentTypeHints.Any(x => x.FluentType == e), e.Name + " couldn't be found");
}
[Fact]
public void Parse_Type()
{
// arrange
Type expected = typeof(UTF8Type);
string cassandraString = "org.apache.cassandra.db.marshal.UTF8Type";
// act
Type actual = new CassandraType(cassandraString).FluentType;
// assert
Assert.Equal(expected, actual);
}
[Fact]
public void Parse_Reversed_Type()
{
// arrange
Type expected = typeof(LongType);
string cassandraString = "org.apache.cassandra.db.marshal.ReversedType(LongType)";
// act
Type actual = new CassandraType(cassandraString).FluentType;
// assert
Assert.Equal(expected, actual);
}
[Fact]
public void Parse_CompositeType_UnknownInnerType()
{
// arranage
string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UnkownTypeForTesting)";
// act
Assert.Throws(typeof(CassandraException), delegate {
Type actual = new CassandraType(cassandraString).FluentType;
});
}
[Fact]
public void Parse_UnknownType()
{
// arranage
string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting";
// act
Assert.Throws(typeof(CassandraException), delegate {
Type actual = new CassandraType(cassandraString).FluentType;
});
}
[Fact]
public void Parse_UnknownTypeWithParams()
{
// arranage
string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";
// act
Assert.Throws(typeof(CassandraException), delegate {
Type actual = new CassandraType(cassandraString).FluentType;
});
}
[Fact]
public void ReversedTypeHelper()
{
// arrange
var expected = "org.apache.cassandra.db.marshal.ReversedType(org.apache.cassandra.db.marshal.UTF8Type)";
// act
var actual = CassandraType.ReversedType(CassandraType.UTF8Type).DatabaseType;
// assert
Assert.Equal(expected, actual);
}
}
}