コード例 #1
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src1 = CreateTestSource(messagesCount: 10, linesPerMessage: 3, messagesPrefix: "a");
					src2 = CreateTestSource(messagesCount: 10, linesPerMessage: 2, messagesPrefix: "b");
					screenBuffer = new ScreenBuffer(changeNotification, 4.4);
					await screenBuffer.SetSources(new[] { src1, src2 }, cancel);
				}
コード例 #2
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src = CreateTestSource(messagesCount: 20);
					screenBuffer = new ScreenBuffer(changeNotification, 4.6);
					await screenBuffer.SetSources(new[] { src }, cancel);
					await screenBuffer.MoveToStreamsEnd(cancel);
				}
コード例 #3
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
			public async Task Setup()
			{
				src = CreateTestSource(messagesCount: 10, linesPerMessage: 2, rawLinesPerMessage: 3);
				screenBuffer = new ScreenBuffer(changeNotification, 3.3);
				await screenBuffer.SetSources(new[] { src }, cancel);
				await screenBuffer.MoveToStreamsBegin(cancel);
			}
コード例 #4
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src1 = CreateTestSource(messagesCount: 20, messagesPrefix: "a:");
					src2 = CreateTestSource(messagesCount: 18, timestampShiftMillis: 7, messagesPrefix: "b:");
					screenBuffer = new ScreenBuffer(changeNotification, 6.3);
					await screenBuffer.SetSources(new[] { src1, src2 }, cancel);
				}
コード例 #5
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task ShouldLoadNothingIsViewSizeIsZero()
				{
					src = CreateTestSource(messagesCount: 20);
					screenBuffer = new ScreenBuffer(changeNotification, 0);
					await screenBuffer.SetSources(new[] { src }, cancel);

					await screenBuffer.MoveToBookmark(
						bmks.CreateBookmark(src.messages.Items[5], 0), BookmarkLookupMode.ExactMatch, cancel);
					Assert.AreEqual(0, screenBuffer.Messages.Count);

					await screenBuffer.MoveToStreamsEnd(cancel);
					Assert.AreEqual(0, screenBuffer.Messages.Count);
				}
コード例 #6
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task CanLoadExactMessageWhenViewIsLargerThanLogg_WithScrollingToTopMiddleOfScreen()
				{
					src = CreateTestSource(messagesCount: 2, linesPerMessage: 3);
					screenBuffer = new ScreenBuffer(changeNotification, 8.2);
					await screenBuffer.SetSources(new[] { src }, cancel);

					Assert.IsTrue(await screenBuffer.MoveToBookmark(bmks.CreateBookmark(src.messages.Items[1], 2), BookmarkLookupMode.ExactMatch | BookmarkLookupMode.MoveBookmarkToMiddleOfScreen, cancel));
					VerifyMessages(screenBuffer,
						@"0-ln_0
						0-ln_1
						0-ln_2
						1-ln_0
						1-ln_1
						1-ln_2", 0);
				}
コード例 #7
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src = CreateTestSource(messagesCount: 5, linesPerMessage: 10);
					screenBuffer = new ScreenBuffer(changeNotification, 6.8);
					await screenBuffer.SetSources(new[] { src }, cancel);
					await screenBuffer.MoveToStreamsEnd(cancel);
					VerifyMessages(screenBuffer,
						@"4-ln_3
						4-ln_4
						4-ln_5
						4-ln_6
						4-ln_7
						4-ln_8
						4-ln_9", 0.2);
				}
コード例 #8
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src = CreateTestSource(messagesCount: 20);
					screenBuffer = new ScreenBuffer(changeNotification, 6.8);
					await screenBuffer.SetSources(new[] { src }, cancel);
					await screenBuffer.MoveToStreamsEnd(cancel);
					VerifyMessages(screenBuffer,
						@"13-ln_0
						14-ln_0
						15-ln_0
						16-ln_0
						17-ln_0
						18-ln_0
						19-ln_0", 0.2);
				}
コード例 #9
0
        static DummyModel.DummySource CreateTestSource(int messageSize = 123, int linesPerMessage = 1, int messagesCount = 10)
        {
            var src = new DummyModel.DummySource();

            for (var i = 0; i < messagesCount; ++i)
            {
                var txt = new StringBuilder();
                for (var ln = 0; ln < linesPerMessage; ++ln)
                {
                    txt.AppendFormat("{2}{0}-ln_{1}", i, ln, ln > 0 ? Environment.NewLine : "");
                }
                src.messages.Add(new Content(i * messageSize, (i + 1) * messageSize, null,
                                             new MessageTimestamp(new DateTime(2016, 1, 1).AddMilliseconds(i)), new StringSlice(txt.ToString()), SeverityFlag.Info));
            }
            return(src);
        }
コード例 #10
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
		static DummyModel.DummySource CreateTestSource(
			int messageSize = 123,
			int linesPerMessage = 1,
			int messagesCount = 10,
			int timestampShiftMillis = 0,
			string messagesPrefix = "",
			int rawLinesPerMessage = 1,
			int messagesPerTimestamp = 1
		)
		{
			var messagesThread = Substitute.For<IThread>();
			var linesSource = new DummyModel.DummySource()
			{
				logSourceHint = messagesThread.LogSource
			};
			var connectionId = string.IsNullOrEmpty(messagesPrefix) ? messagesThread.GetHashCode().ToString("x") : messagesPrefix;
			messagesThread.LogSource.ConnectionId.Returns(connectionId);
			messagesThread.LogSource.Provider.ConnectionId.Returns(connectionId);
			for (var i = 0; i < messagesCount; ++i)
			{
				Func<int, string, string> generateText = (int linesCount, string lnStaticText) =>
				{
					var sb = new StringBuilder();
					for (var ln = 0; ln < linesCount; ++ln)
						sb.AppendFormat("{2}{3}{0}-{4}_{1}", i, ln, ln > 0 ? Environment.NewLine : "", messagesPrefix, lnStaticText);
					return sb.ToString();
				};
				var txt = generateText(linesPerMessage, "ln");
				var rawTxt = generateText(rawLinesPerMessage, "rln");
				linesSource.messages.Add(new Message(
					i * messageSize,
					(i + 1) * messageSize,
					messagesThread,
					new MessageTimestamp(new DateTime(2016, 1, 1).AddMilliseconds(timestampShiftMillis + i/messagesPerTimestamp)),
					new StringSlice(txt),
					SeverityFlag.Info,
					new StringSlice(rawTxt)
				));
			}
			return linesSource;
		}
コード例 #11
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task CanLoadBookmarkWhenManyMessagesShareTheTimestamp()
				{
					src1 = CreateTestSource(messagesCount: 20, linesPerMessage: 1, messagesPrefix: "a", messagesPerTimestamp: 10);
					src2 = CreateTestSource(messagesCount: 20, linesPerMessage: 1, messagesPrefix: "b", messagesPerTimestamp: 10);
					screenBuffer = new ScreenBuffer(changeNotification, 3);
					await screenBuffer.SetSources(new[] { src1, src2 }, cancel);

					await screenBuffer.MoveToBookmark(
						bmks.CreateBookmark(src1.messages.Items[5], 0), BookmarkLookupMode.ExactMatch, cancel);
					VerifyMessages(screenBuffer,
						@"a5-ln_0
						a6-ln_0
						a7-ln_0", 0);

					await screenBuffer.MoveToBookmark(
						bmks.CreateBookmark(src2.messages.Items[0], 0), BookmarkLookupMode.ExactMatch | BookmarkLookupMode.MoveBookmarkToMiddleOfScreen, cancel);
					VerifyMessages(screenBuffer,
						@"a9-ln_0
						b0-ln_0
						b1-ln_0", 0);
				}
コード例 #12
0
ファイル: ScreenBufferTests.cs プロジェクト: cxsun/logjoint
				public async Task Setup()
				{
					src = CreateTestSource(messagesCount: 10, linesPerMessage: 3);
					screenBuffer = new ScreenBuffer(changeNotification, 4.4);
					await screenBuffer.SetSources(new[] { src }, cancel);
				}