@@ -15,16 +15,16 @@ let init() =
15
15
let dbname = " FSharp-MongoDB-Driver"
16
16
client <- new MongoClient( connectionString)
17
17
db <- client.GetDatabase( dbname)
18
- db.DropCollection( " IsomophicDataModel" )
18
+ db.DropCollection( " IsomophicDataModelCs" )
19
+ db.DropCollection( " IsomophicDataModelFs" )
19
20
FSharp.MongoDB.Driver.Register()
20
21
21
22
[<OneTimeTearDown>]
22
23
let teardown () =
23
24
client.Dispose()
24
25
25
- [<Test>]
26
- let ``Isomorphic Some`` () =
27
26
27
+ let ModelSome () =
28
28
let csModel =
29
29
let map =
30
30
let map = System.Collections.Generic.Dictionary< string, int>()
@@ -35,60 +35,39 @@ let ``Isomorphic Some``() =
35
35
RecordDataModel(
36
36
Int = 42 ,
37
37
IntOpt = 666 ,
38
-
39
38
String = " String" ,
40
39
StringOpt = " StringOpt" ,
41
-
42
40
Array = [| 1 ; 2 ; 3 |],
43
41
ArrayOpt = [| 5 ; 6 ; 7 ; 8 |],
44
-
45
42
Value = CsDataModel.Value.IntValue( 42 ),
46
43
ValueOpt = CsDataModel.Value.StringValue( " ValueStringOpt" ),
47
-
48
44
ValueArray = [| CsDataModel.Value.IntValue( 42 )
49
45
CsDataModel.Value.StringValue( " String" )
50
46
CsDataModel.Value.PairValue( CsDataModel.Pair( First = 99 , Second = " SecondPair" )) |],
51
47
ValueArrayOpt = [| CsDataModel.Value.IntValue( 101 ) |],
52
-
53
48
Record = CsDataModel.Pair( First = 1 , Second = " Second" ),
54
49
RecordOpt = CsDataModel.Pair( First = - 1 , Second = " SecondOpt" ),
55
-
56
50
Map = map)
57
51
58
-
59
52
let fsModel =
60
53
{ Id = ObjectId()
61
-
62
54
Int = 42
63
55
IntOpt = Some 666
64
-
65
56
String = " String"
66
57
StringOpt = Some " StringOpt"
67
-
68
58
Array = [| 1 ; 2 ; 3 |]
69
59
ArrayOpt = Some [| 5 ; 6 ; 7 ; 8 |]
70
-
71
60
Value = Value.IntValue 42
72
61
ValueOpt = Some <| Value.StringValue " ValueStringOpt"
73
-
74
62
ValueArray = [| Value.IntValue 42 ; Value.StringValue " String" ; Value.PairValue { First = 99 ; Second = Some " SecondPair" } |]
75
63
ValueArrayOpt = Some [| Value.IntValue 101 |]
76
-
77
64
Record = { First = 1 ; Second = Some " Second" }
78
65
RecordOpt = Some { First = - 1 ; Second = Some " SecondOpt" }
79
-
80
66
Map = Map [ " 1" , 1 ; " 2" , 2 ] }
81
67
82
- let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModel"
83
- csCollection.InsertOne( csModel)
84
-
85
- let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModel"
86
- let fromDb = fsCollection.Find( fun x -> x.Id = csModel.Id) .First()
87
- fromDb |> should equal fsModel
88
-
89
- [<Test>]
90
- let ``Isomorphic None`` () =
68
+ csModel, fsModel
91
69
70
+ let ModelNone () =
92
71
let csModel =
93
72
let map =
94
73
let map = System.Collections.Generic.Dictionary< string, int>()
@@ -98,48 +77,77 @@ let ``Isomorphic None``() =
98
77
99
78
RecordDataModel(
100
79
Int = 42 ,
101
-
102
80
String = " String" ,
103
-
104
81
Array = [| 1 ; 2 ; 3 |],
105
-
106
82
Value = CsDataModel.Value.IntValue( 42 ),
107
-
108
83
ValueArray = [| CsDataModel.Value.IntValue( 42 )
109
84
CsDataModel.Value.StringValue( " String" )
110
85
CsDataModel.Value.PairValue( CsDataModel.Pair( First = 99 , Second = " SecondPair" )) |],
111
-
112
86
Record = CsDataModel.Pair( First = 1 , Second = " Second" ),
113
-
114
87
Map = map)
115
88
116
-
117
89
let fsModel =
118
90
{ Id = ObjectId()
119
-
120
91
Int = 42
121
92
IntOpt = None
122
-
123
93
String = " String"
124
94
StringOpt = None
125
-
126
95
Array = [| 1 ; 2 ; 3 |]
127
96
ArrayOpt = None
128
-
129
97
Value = Value.IntValue 42
130
98
ValueOpt = None
131
-
132
99
ValueArray = [| Value.IntValue 42 ; Value.StringValue " String" ; Value.PairValue { First = 99 ; Second = Some " SecondPair" } |]
133
100
ValueArrayOpt = None
134
-
135
101
Record = { First = 1 ; Second = Some " Second" }
136
102
RecordOpt = None
137
-
138
103
Map = Map [ " 1" , 1 ; " 2" , 2 ] }
139
104
140
- let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModel"
105
+ csModel, fsModel
106
+
107
+
108
+ [<Test>]
109
+ let ``Isomorphic Some cs -> fs`` () =
110
+ let csModel , fsModel = ModelSome()
111
+
112
+ let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModelCs"
113
+ csCollection.InsertOne( csModel)
114
+
115
+ let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModelCs"
116
+ let fromDb = fsCollection.Find( fun x -> x.Id = csModel.Id) .First()
117
+ fromDb |> should equal fsModel
118
+
119
+ [<Test>]
120
+ let ``Isomorphic None cs -> fs`` () =
121
+ let csModel , fsModel = ModelNone()
122
+
123
+ let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModelCs"
141
124
csCollection.InsertOne( csModel)
142
125
143
- let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModel "
126
+ let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModelCs "
144
127
let fromDb = fsCollection.Find( fun x -> x.Id = csModel.Id) .First()
145
128
fromDb |> should equal fsModel
129
+
130
+
131
+
132
+ [<Test>]
133
+ let ``Isomorphic Some fs -> cs`` () =
134
+ let csModel , fsModel = ModelSome()
135
+
136
+ let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModelFs"
137
+ fsCollection.InsertOne( fsModel)
138
+
139
+ let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModelFs"
140
+ let fromDb = csCollection.Find( fun x -> x.Id = csModel.Id) .First()
141
+ fromDb |> should equal fsModel
142
+
143
+
144
+ [<Test>]
145
+ let ``Isomorphic None fs -> cs`` () =
146
+ let csModel , fsModel = ModelNone()
147
+
148
+ let fsCollection = db.GetCollection< FsDataModel.RecordDataModel> " IsomophicDataModelFs"
149
+ fsCollection.InsertOne( fsModel)
150
+
151
+ let csCollection = db.GetCollection< CsDataModel.RecordDataModel> " IsomophicDataModelFs"
152
+ let fromDb = csCollection.Find( fun x -> x.Id = csModel.Id) .First()
153
+ fromDb |> should equal csModel
0 commit comments