@@ -5,6 +5,17 @@ open SqlStreamStore.FSharp
55open SqlStreamStore.FSharp .Tests
66
77
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+
819[<Tests>]
920let tests =
1021 testList
@@ -16,21 +27,9 @@ let tests =
1627
1728 let appendVersion = AppendVersion.NoStream
1829
19- let guidString1 = " 11111111-1111-1111-1111-111111111111 "
30+ let msg1 = newTestMessage guidString1
2031
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
3433
3534 let msgList = [ msg1; msg2 ]
3635
@@ -54,21 +53,9 @@ let tests =
5453
5554 let appendVersion = AppendVersion.NoStream
5655
57- let guidString1 = " 11111111-1111-1111-1111-111111111111"
58-
59- let guidString2 = " 22222222-2222-2222-2222-222222222222"
56+ let msg1 = newTestMessage guidString1
6057
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
7259
7360 let msgList = [ msg1; msg2 ]
7461
@@ -79,6 +66,62 @@ let tests =
7966
8067 let! readResult = Read.readFromStream inMemStore ReadingDirection.Backward streamName readVersion 10
8168
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+
82125 readResult.Messages
83126 |> Array.sortBy ( fun msg -> msg.MessageId)
84127 |> fun sorted ->
0 commit comments