@@ -14,9 +14,9 @@ public class MessagesTest
1414 ServiceResponseMock response ;
1515 WebRequesterFactoryMock factory ;
1616 ManualResetEvent stateIsOpen ;
17- List < ServerSentEvent > receivedMessages ;
17+ List < ServerSentEvent > receivedMessages ;
1818 ManualResetEvent eventReceived ;
19-
19+
2020 private TestableEventSource SetupAndConnect ( )
2121 {
2222 // setup
@@ -49,7 +49,7 @@ public void TestDoubleLineFeed()
4949 {
5050 // setup
5151 TestableEventSource es = SetupAndConnect ( ) ;
52-
52+
5353 // act
5454 es . Start ( cts . Token ) ;
5555 stateIsOpen . WaitOrThrow ( ) ;
@@ -145,5 +145,37 @@ public void TestDataSentInParts()
145145 Assert . AreEqual ( receivedMessages [ 0 ] . EventType , "test" ) ;
146146 Assert . AreEqual ( receivedMessages [ 0 ] . Data , "simple\n " ) ;
147147 }
148+ [ TestMethod ]
149+ public void TestMultipleEvents ( )
150+ {
151+ // setup
152+ TestableEventSource es = SetupAndConnect ( ) ;
153+
154+ // act
155+ es . Start ( cts . Token ) ;
156+ stateIsOpen . WaitOrThrow ( ) ;
157+
158+ //entire event in one line
159+ response . WriteTestTextToStream ( "id: 1" + "\n " + "event: newevent" + "\n " + "data: Hello" + "\n \n " ) ;
160+ eventReceived . WaitOrThrow ( ) ;
161+ eventReceived . Reset ( ) ;
162+
163+ //This event is split up over multiple res.write lines
164+ response . WriteTestTextToStream ( "id:2 " + "\n " ) ;
165+ response . WriteTestTextToStream ( "event: event 3" + "\n " ) ;
166+ response . WriteTestTextToStream ( "data: Hello again" ) ;
167+ response . WriteTestTextToStream ( "\n \n " ) ;
168+ eventReceived . WaitOrThrow ( ) ;
169+ eventReceived . Reset ( ) ;
170+
171+ //Again an event that is split up over multiple res.write statements
172+ response . WriteTestTextToStream ( "id: 3" + "\n " ) ;
173+ response . WriteTestTextToStream ( "event: event3" + "\n " + "data: Goodbye" + "\n \n " ) ;
174+ eventReceived . WaitOrThrow ( ) ;
175+ eventReceived . Reset ( ) ;
176+
177+ // assert
178+ Assert . AreEqual ( receivedMessages . Count , 3 ) ;
179+ }
148180 }
149181}
0 commit comments