forked from koush/sqlite-net
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGuidTests.cs
105 lines (82 loc) · 3.47 KB
/
GuidTests.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
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
#if NETFX_CORE
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
using SetUp = Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestInitializeAttribute;
using TestFixture = Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestClassAttribute;
using Test = Microsoft.VisualStudio.TestPlatform.UnitTestFramework.TestMethodAttribute;
#else
using NUnit.Framework;
#endif
namespace SQLite.Tests {
[TestFixture]
public class GuidTests {
public class TestObj {
[PrimaryKey]
public Guid Id { get; set; }
public String Text { get; set; }
public override string ToString() {
return string.Format("[TestObj: Id={0}, Text={1}]", Id, Text);
}
}
public class TestDb : SQLiteConnection {
public TestDb(String path)
: base(path) {
CreateTable<TestObj>();
}
}
[Test]
public void ShouldPersistAndReadGuid() {
var db = new TestDb(TestPath.GetTempFileName());
var obj1 = new TestObj() { Id=new Guid("36473164-C9E4-4CDF-B266-A0B287C85623"), Text = "First Guid Object" };
var obj2 = new TestObj() { Id=new Guid("BC5C4C4A-CA57-4B61-8B53-9FD4673528B6"), Text = "Second Guid Object" };
var numIn1 = db.Insert(obj1);
var numIn2 = db.Insert(obj2);
Assert.AreEqual(1, numIn1);
Assert.AreEqual(1, numIn2);
var result = db.Query<TestObj>("select * from TestObj").ToList();
Assert.AreEqual(2, result.Count);
Assert.AreEqual(obj1.Text, result[0].Text);
Assert.AreEqual(obj2.Text, result[1].Text);
Assert.AreEqual(obj1.Id, result[0].Id);
Assert.AreEqual(obj2.Id, result[1].Id);
db.Close();
}
[Test]
public void AutoGuid_HasGuid()
{
var db = new SQLiteConnection(TestPath.GetTempFileName());
db.CreateTable<TestObj>(CreateFlags.AutoIncPK);
var guid1 = new Guid("36473164-C9E4-4CDF-B266-A0B287C85623");
var guid2 = new Guid("BC5C4C4A-CA57-4B61-8B53-9FD4673528B6");
var obj1 = new TestObj() { Id = guid1, Text = "First Guid Object" };
var obj2 = new TestObj() { Id = guid2, Text = "Second Guid Object" };
var numIn1 = db.Insert(obj1);
var numIn2 = db.Insert(obj2);
Assert.AreEqual(guid1, obj1.Id);
Assert.AreEqual(guid2, obj2.Id);
db.Close();
}
[Test]
public void AutoGuid_EmptyGuid()
{
var db = new SQLiteConnection(TestPath.GetTempFileName());
db.CreateTable<TestObj>(CreateFlags.AutoIncPK);
var guid1 = new Guid("36473164-C9E4-4CDF-B266-A0B287C85623");
var guid2 = new Guid("BC5C4C4A-CA57-4B61-8B53-9FD4673528B6");
var obj1 = new TestObj() { Text = "First Guid Object" };
var obj2 = new TestObj() { Text = "Second Guid Object" };
Assert.AreEqual(Guid.Empty, obj1.Id);
Assert.AreEqual(Guid.Empty, obj2.Id);
var numIn1 = db.Insert(obj1);
var numIn2 = db.Insert(obj2);
Assert.AreNotEqual(Guid.Empty, obj1.Id);
Assert.AreNotEqual(Guid.Empty, obj2.Id);
Assert.AreNotEqual(obj1.Id, obj2.Id);
db.Close();
}
}
}