public void ThrowWhenSerializeWithNoOptions() { var serializer = new EntryStringSerializer(); serializer.Options = 0; var entry = new SerpentEntry(String.Empty); Assert.Throws <InvalidSerializerOptionsException>(() => serializer.Serialize(entry)); }
public void ThrowManualFlushWithBypass() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty); serpent.ForceFlushOnRecord = true; Assert.Throws <InvalidFlushOperationException>(() => serpent.FlushRecords()); }
public void ThrowOnInvalidSeverityRange() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty); serpent.MinimumSeverity = EntrySeverity.Critical; serpent.MaximumSeverity = EntrySeverity.Low; Assert.Throws <InvalidSeverityRangeException>(() => serpent.Record(newEntry)); }
public void PassRecordWhenSeverityIsMaximum() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty, EntrySeverity.Critical); serpent.MaximumSeverity = EntrySeverity.Critical; serpent.Record(newEntry); Assert.NotEmpty(serpent.GetRecords()); }
public void FailRecordWhenSeverityLowerThanMinimum() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty, EntrySeverity.Medium); serpent.MinimumSeverity = EntrySeverity.High; serpent.Record(newEntry); Assert.Empty(serpent.GetRecords()); }
public void PassFlushingSingleEntry() { var ser = new Mock <EntryStringSerializer>(); var fs = new Mock <IFileSystem>(); var flusher = new FileFlusher(ser.Object, fs.Object); var item = new SerpentEntry("One"); flusher.FlushSingleEntry(item); flusher.FlushSingleEntry(item); fs.Verify(x => x.AppendAllText(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2)); }
public void PassFlushWithBypass() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty); serpent.ForceFlushOnRecord = true; serpent.Record(newEntry); flushMock.Verify(x => x.FlushSingleEntry(It.IsAny <ISerpentEntry>())); }
public void PassWhenSingleFlagSerializedAsExpected() { var serializer = new EntryStringSerializer(); serializer.Options = SerializerOptions.IncludeMessage; var entry = new SerpentEntry("This is a message!", EntrySeverity.High, "Unit Test"); var serialized = serializer.Serialize(entry); Assert.Contains(entry.Message, serialized); Assert.DoesNotContain(entry.Origin, serialized); Assert.DoesNotContain(entry.Severity.ToString(), serialized); Assert.DoesNotContain(entry.Date.ToString(serializer.DateFormat), serialized); }
public void PassFlushWithoutBypass() { var outputMock = new Mock <IDirectOutput>(); var flushMock = new Mock <IRecordFlusher>(); var serpent = new SerpentKernel.Kernel(flushMock.Object, outputMock.Object); var newEntry = new SerpentEntry(String.Empty); serpent.ForceFlushOnRecord = false; serpent.Record(newEntry); Assert.NotEmpty(serpent.GetRecords()); serpent.FlushRecords(); Assert.Empty(serpent.GetRecords()); flushMock.Verify(x => x.FlushSingleEntry(It.IsAny <ISerpentEntry>()), Times.Never); }
public void PassWithAllFlagsSerializedAsExpected() { var serializer = new EntryStringSerializer(); serializer.DateFormat = "mm:ss"; serializer.Options = SerializerOptions.IncludeDate | SerializerOptions.IncludeMessage | SerializerOptions.IncludeOrigin | SerializerOptions.IncludeSeverity; var entry = new SerpentEntry("Hi!", EntrySeverity.Informational, "Unit Test"); var serialized = serializer.Serialize(entry); Assert.Contains(entry.Date.ToString(serializer.DateFormat), serialized); Assert.Contains(entry.Message, serialized); Assert.Contains(entry.Severity.ToString(), serialized); Assert.Contains(entry.Origin, serialized); }