public void ReadOnlyListTest() { var logger = new MockLogger(); var d = ArgTestExtensions.Wrap(logger); logger.Reset(); d.Method1(); var rol = logger.LastState as IReadOnlyList <KeyValuePair <string, object> >; Assert.Equal(0, rol !.Count); Assert.Empty(rol); Assert.Throws <ArgumentOutOfRangeException>(() => _ = rol[0]); logger.Reset(); d.Method2("arg1"); rol = logger.LastState as IReadOnlyList <KeyValuePair <string, object> >; Assert.Equal(1, rol !.Count); #pragma warning disable CA1829 // Use Length/Count property instead of Count() when available Assert.Equal(1, rol.LongCount()); #pragma warning restore CA1829 // Use Length/Count property instead of Count() when available Assert.Equal("p1", (string)rol[0].Key); Assert.Equal("arg1", (string)rol[0].Value); Assert.Throws <ArgumentOutOfRangeException>(() => _ = rol[1]); logger.Reset(); d.Method3("arg1", 2); rol = logger.LastState as IReadOnlyList <KeyValuePair <string, object> >; Assert.Equal(2, rol !.Count); #pragma warning disable CA1829 // Use Length/Count property instead of Count() when available Assert.Equal(2, rol.LongCount()); #pragma warning restore CA1829 // Use Length/Count property instead of Count() when available Assert.Equal("p1", (string)rol[0].Key); Assert.Equal("arg1", (string)rol[0].Value); Assert.Equal("p2", (string)rol[1].Key); Assert.Equal(2, (int)rol[1].Value); Assert.Throws <ArgumentOutOfRangeException>(() => _ = rol[2]); }
public void ArgTest() { var logger = new MockLogger(); var d = ArgTestExtensions.Wrap(logger); logger.Reset(); d.Method1(); Assert.Null(logger.LastException); Assert.Equal("M1", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method2("arg1"); Assert.Null(logger.LastException); Assert.Equal("M2", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method3("arg1", 2); Assert.Null(logger.LastException); Assert.Equal("M3 arg1 2", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method4(new InvalidOperationException("A")); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M4", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method5(new InvalidOperationException("A"), new InvalidOperationException("B")); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M5", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method6(new InvalidOperationException("A"), 2); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M6", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); d.Method7(1, new InvalidOperationException("B")); // Assert.Equal("B", logger.LastException!.Message); Assert.Equal("M7", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method1(logger); Assert.Null(logger.LastException); Assert.Equal("M1", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method2(logger, "arg1"); Assert.Null(logger.LastException); Assert.Equal("M2", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method3(logger, "arg1", 2); Assert.Null(logger.LastException); Assert.Equal("M3 arg1 2", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method4(logger, new InvalidOperationException("A")); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M4", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method5(logger, new InvalidOperationException("A"), new InvalidOperationException("B")); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M5", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method6(logger, new InvalidOperationException("A"), 2); // Assert.Equal("A", logger.LastException!.Message); Assert.Equal("M6", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); logger.Reset(); ArgTestExtensions.Method7(logger, 1, new InvalidOperationException("B")); // Assert.Equal("B", logger.LastException!.Message); Assert.Equal("M7", logger.LastFormattedString); Assert.Equal(1, logger.CallCount); }