@@ -5,6 +5,17 @@ open SqlStreamStore.FSharp
5
5
open SqlStreamStore.FSharp .Tests
6
6
7
7
8
+ let newTestMessage : string -> MessageDetails =
9
+ fun guid ->
10
+ { id = StreamMessageId.Custom( System.Guid.Parse( guid))
11
+ type_ = " testing"
12
+ jsonData = " {}"
13
+ jsonMetadata = " {}" }
14
+
15
+ let guidString1 = " 11111111-1111-1111-1111-111111111111"
16
+
17
+ let guidString2 = " 22222222-2222-2222-2222-222222222222"
18
+
8
19
[<Tests>]
9
20
let tests =
10
21
testList
@@ -16,21 +27,9 @@ let tests =
16
27
17
28
let appendVersion = AppendVersion.NoStream
18
29
19
- let guidString1 = " 11111111-1111-1111-1111-111111111111 "
30
+ let msg1 = newTestMessage guidString1
20
31
21
- let guidString2 = " 22222222-2222-2222-2222-222222222222"
22
-
23
- let msg1 =
24
- { id = StreamMessageId.Custom( System.Guid.Parse( guidString1))
25
- type_ = " testing"
26
- jsonData = " {}"
27
- jsonMetadata = " {}" }
28
-
29
- let msg2 =
30
- { id = StreamMessageId.Custom( System.Guid.Parse( guidString2))
31
- type_ = " testing"
32
- jsonData = " {}"
33
- jsonMetadata = " {}" }
32
+ let msg2 = newTestMessage guidString2
34
33
35
34
let msgList = [ msg1; msg2 ]
36
35
@@ -54,21 +53,9 @@ let tests =
54
53
55
54
let appendVersion = AppendVersion.NoStream
56
55
57
- let guidString1 = " 11111111-1111-1111-1111-111111111111"
58
-
59
- let guidString2 = " 22222222-2222-2222-2222-222222222222"
56
+ let msg1 = newTestMessage guidString1
60
57
61
- let msg1 =
62
- { id = StreamMessageId.Custom( System.Guid.Parse( guidString1))
63
- type_ = " testing"
64
- jsonData = " {}"
65
- jsonMetadata = " {}" }
66
-
67
- let msg2 =
68
- { id = StreamMessageId.Custom( System.Guid.Parse( guidString2))
69
- type_ = " testing"
70
- jsonData = " {}"
71
- jsonMetadata = " {}" }
58
+ let msg2 = newTestMessage guidString2
72
59
73
60
let msgList = [ msg1; msg2 ]
74
61
@@ -79,6 +66,62 @@ let tests =
79
66
80
67
let! readResult = Read.readFromStream inMemStore ReadingDirection.Backward streamName readVersion 10
81
68
69
+ readResult.Messages
70
+ |> Array.sortBy ( fun msg -> msg.MessageId)
71
+ |> fun sorted ->
72
+ ExpectExtra.equal guidString2 ( sorted.[ 1 ]. MessageId.ToString())
73
+ ExpectExtra.equal guidString1 ( sorted.[ 0 ]. MessageId.ToString())
74
+ }
75
+
76
+ testAsync " Should read from all streams forward." {
77
+ let inMemStore = new SqlStreamStore.InMemoryStreamStore()
78
+
79
+ let stream1 = " test1"
80
+
81
+ let stream2 = " test2"
82
+
83
+ let appendVersion = AppendVersion.NoStream
84
+
85
+ let msg1 = newTestMessage guidString1
86
+
87
+ let msg2 = newTestMessage guidString2
88
+
89
+ do ! Append.appendNewMessage inMemStore stream1 appendVersion msg1
90
+ |> Async.Ignore
91
+
92
+ do ! Append.appendNewMessage inMemStore stream2 appendVersion msg2
93
+ |> Async.Ignore
94
+
95
+ let! readResult = Read.readFromAllStream inMemStore ReadingDirection.Forward StartPosition.Start 10
96
+
97
+ readResult.Messages
98
+ |> Array.sortBy ( fun msg -> msg.MessageId)
99
+ |> fun sorted ->
100
+ ExpectExtra.equal guidString1 ( sorted.[ 0 ]. MessageId.ToString())
101
+ ExpectExtra.equal guidString2 ( sorted.[ 1 ]. MessageId.ToString())
102
+ }
103
+
104
+ testAsync " Should read from all streams backward." {
105
+ let inMemStore = new SqlStreamStore.InMemoryStreamStore()
106
+
107
+ let stream1 = " test1"
108
+
109
+ let stream2 = " test2"
110
+
111
+ let appendVersion = AppendVersion.NoStream
112
+
113
+ let msg1 = newTestMessage guidString1
114
+
115
+ let msg2 = newTestMessage guidString2
116
+
117
+ do ! Append.appendNewMessage inMemStore stream1 appendVersion msg1
118
+ |> Async.Ignore
119
+
120
+ do ! Append.appendNewMessage inMemStore stream2 appendVersion msg2
121
+ |> Async.Ignore
122
+
123
+ let! readResult = Read.readFromAllStream inMemStore ReadingDirection.Backward StartPosition.End 10
124
+
82
125
readResult.Messages
83
126
|> Array.sortBy ( fun msg -> msg.MessageId)
84
127
|> fun sorted ->
0 commit comments