Ejemplo n.º 1
0
        public void FilesOk()
        {
            var tmp = Path.GetTempFileName();

            try
            {
                var writer = new SomeWriter();
                var debug  = MessageEx.Default(Severity.Debug);
                using (var output = OutputEx.File(tmp, writer, false))
                {
                    output.Log(debug);
                    Assert.True(writer.Written.Select(x => x.Item2).SequenceEqual(new[] { debug }));
                    Assert.Equal("1", ReadAllTextTest(tmp));
                }
                using (var output = OutputEx.File(tmp, writer))
                {
                    output.Log(debug);
                    Assert.True(writer.Written.Select(x => x.Item2).SequenceEqual(new[] { debug, debug }));
                    Assert.Equal("12", ReadAllTextTest(tmp));
                }
                using (var output = OutputEx.File(tmp, writer, false))
                {
                    output.Log(debug);
                    Assert.True(writer.Written.Select(x => x.Item2).SequenceEqual(new[] { debug, debug, debug }));
                    Assert.Equal("3", ReadAllTextTest(tmp));
                }
            }
            finally
            {
                File.Delete(tmp);
            }
        }
Ejemplo n.º 2
0
        public void DefaultOutputsOk()
        {
            var outputs = OutputEx.DefaultOutputs();

            Assert.Equal(0, outputs.Count);
            Assert.True(outputs.SequenceEqual(Enumerable.Empty <IOutput>()));

            var o1      = new SomeOutput();
            var message = MessageEx.Default(Severity.Debug);

            outputs.Add(o1);
            Assert.Equal(1, outputs.Count);
            Assert.True(outputs.SequenceEqual(new[] { o1 }));

            o1.Throw = true;
            outputs.Log(message);
            Assert.Equal(0, o1.Logged.Count);

            o1.Throw = false;
            outputs.Log(message);
            Assert.True(o1.Logged.SequenceEqual(new[] { message }));

            var o2 = new SomeOutput();

            outputs.Add(o2);
            Assert.Equal(2, outputs.Count);
            Assert.True(new[] { o1, o2 }.All(c => outputs.Contains(c)));
            outputs.Log(message);
            Assert.True(o1.Logged.SequenceEqual(new[] { message, message }));
            Assert.True(o2.Logged.SequenceEqual(new[] { message }));
            o1.Throw = true;
            outputs.Log(message);
            Assert.True(o1.Logged.SequenceEqual(new[] { message, message }));
            Assert.True(o2.Logged.SequenceEqual(new[] { message, message }));
            o1.Throw = false;
            o2.Throw = true;
            outputs.Log(message);
            Assert.True(o1.Logged.SequenceEqual(new[] { message, message, message }));
            Assert.True(o2.Logged.SequenceEqual(new[] { message, message }));

            outputs.Remove(o1);
            Assert.Equal(1, outputs.Count);
            Assert.True(outputs.SequenceEqual(new[] { o2 }));

            o2.Throw = false;
            outputs.Log(message);
            Assert.True(o1.Logged.SequenceEqual(new[] { message, message, message }));
            Assert.True(o2.Logged.SequenceEqual(new[] { message, message, message }));

            outputs.Dispose();
            Assert.False(o1.Disposed);
            Assert.True(o2.Disposed);
        }
Ejemplo n.º 3
0
 public void TextWriterOk()
 {
     using (var sw = new StringWriter())
     {
         var writer = new SomeWriter();
         var output = OutputEx.TextWriter(sw, writer);
         var msg1   = MessageEx.Default(Severity.Debug);
         var msg2   = MessageEx.Default(Severity.Error);
         output.Log(msg1);
         output.Log(msg2);
         Assert.True(writer.Written.All(x => x.Item1 == sw));
         Assert.True(writer.Written.Select(x => x.Item2).SequenceEqual(new[] { msg1, msg2 }));
         Assert.Equal("12", sw.ToString());
     }
 }
Ejemplo n.º 4
0
        public void ConsoleOk()
        {
            var writer = new SomeWriter();
            var output = OutputEx.Console(writer);
            var debug  = MessageEx.Default(Severity.Debug);
            var info   = MessageEx.Default(Severity.Info);
            var error  = MessageEx.Default(Severity.Error);
            var fatal  = MessageEx.Default(Severity.Fatal);

            output.Log(debug);
            output.Log(info);
            output.Log(error);
            output.Log(fatal);
            Assert.Equal(Console.Out, writer.Written[0].Item1);
            Assert.Equal(Console.Out, writer.Written[1].Item1);
            Assert.Equal(Console.Error, writer.Written[2].Item1);
            Assert.Equal(Console.Error, writer.Written[3].Item1);
            Assert.True(writer.Written.Select(x => x.Item2).SequenceEqual(new[] { debug, info, error, fatal }));
        }