PageRenderTime 47ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/Blocks/Logging/Tests/Logging/TraceListenerFilterFixture.cs

#
C# | 150 lines | 120 code | 20 blank | 10 comment | 0 complexity | ecf134b5979ab8f00100ffd58035ab9f MD5 | raw file
  1. //===============================================================================
  2. // Microsoft patterns & practices Enterprise Library
  3. // Logging Application Block
  4. //===============================================================================
  5. // Copyright Š Microsoft Corporation. All rights reserved.
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
  7. // OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  8. // LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  9. // FITNESS FOR A PARTICULAR PURPOSE.
  10. //===============================================================================
  11. using System.Collections;
  12. using System.Collections.Generic;
  13. using Microsoft.Practices.EnterpriseLibrary.Logging.TestSupport.TraceListeners;
  14. using Microsoft.VisualStudio.TestTools.UnitTesting;
  15. #if !SILVERLIGHT
  16. using System.Diagnostics;
  17. #else
  18. using Microsoft.Practices.EnterpriseLibrary.Logging.Diagnostics;
  19. #endif
  20. namespace Microsoft.Practices.EnterpriseLibrary.Logging.Tests
  21. {
  22. [TestClass]
  23. public class TraceListenerFilterFixture
  24. {
  25. [TestMethod]
  26. public void TraceListenerFilterOnEmptyCollectionReturnsHasNoElements()
  27. {
  28. TraceListenerFilter filter = new TraceListenerFilter();
  29. IEnumerable<TraceListener> traceListenersCollection = new TraceListener[0];
  30. int i = 0;
  31. Dictionary<TraceListener, int> listeners = new Dictionary<TraceListener, int>();
  32. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection))
  33. {
  34. i++;
  35. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  36. }
  37. Assert.AreEqual(0, i);
  38. }
  39. [TestMethod]
  40. public void TraceListenerFilterOnSingleElementCollectionReturnsHasSingleElement()
  41. {
  42. TraceListenerFilter filter = new TraceListenerFilter();
  43. TraceListener listener1 = new MockTraceListener();
  44. IEnumerable<TraceListener> traceListenersCollection = new TraceListener[] { listener1 };
  45. int i = 0;
  46. Dictionary<TraceListener, int> listeners = new Dictionary<TraceListener, int>();
  47. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection))
  48. {
  49. i++;
  50. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  51. }
  52. Assert.AreEqual(1, i);
  53. Assert.AreEqual(1, listeners[listener1]);
  54. }
  55. [TestMethod]
  56. public void TraceListenerFilterOnMultipleElementsCollectionReturnsHasSameElements()
  57. {
  58. TraceListenerFilter filter = new TraceListenerFilter();
  59. TraceListener listener1 = new MockTraceListener();
  60. TraceListener listener2 = new MockTraceListener();
  61. IEnumerable<TraceListener> traceListenersCollection = new TraceListener[] { listener1, listener2 };
  62. int i = 0;
  63. Dictionary<TraceListener, int> listeners = new Dictionary<TraceListener, int>();
  64. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection))
  65. {
  66. i++;
  67. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  68. }
  69. Assert.AreEqual(2, i);
  70. Assert.AreEqual(1, listeners[listener1]);
  71. Assert.AreEqual(1, listeners[listener2]);
  72. }
  73. [TestMethod]
  74. public void TraceListenerFilterOnMultipleCollectionsWithDisjointElementsDoesNotRepeatElements()
  75. {
  76. TraceListenerFilter filter = new TraceListenerFilter();
  77. TraceListener listener1 = new MockTraceListener();
  78. TraceListener listener2 = new MockTraceListener();
  79. IEnumerable<TraceListener> traceListenersCollection1 = new TraceListener[] { listener1, listener2 };
  80. TraceListener listener3 = new MockTraceListener();
  81. TraceListener listener4 = new MockTraceListener();
  82. IEnumerable<TraceListener> traceListenersCollection2 = new TraceListener[] { listener3, listener4 };
  83. int i = 0;
  84. Dictionary<TraceListener, int> listeners = new Dictionary<TraceListener, int>();
  85. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection1))
  86. {
  87. i++;
  88. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  89. }
  90. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection2))
  91. {
  92. i++;
  93. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  94. }
  95. Assert.AreEqual(4, i);
  96. Assert.AreEqual(1, listeners[listener1]);
  97. Assert.AreEqual(1, listeners[listener2]);
  98. Assert.AreEqual(1, listeners[listener3]);
  99. Assert.AreEqual(1, listeners[listener4]);
  100. }
  101. [TestMethod]
  102. public void TraceListenerFilterOnMultipleCollectionsWithCommonElementsDoesNotRepeatElements()
  103. {
  104. TraceListenerFilter filter = new TraceListenerFilter();
  105. TraceListener listener1 = new MockTraceListener();
  106. TraceListener listener2 = new MockTraceListener();
  107. IEnumerable<TraceListener> traceListenersCollection1 = new TraceListener[] { listener1, listener2 };
  108. TraceListener listener3 = new MockTraceListener();
  109. TraceListener listener4 = new MockTraceListener();
  110. IEnumerable<TraceListener> traceListenersCollection2 = new TraceListener[] { listener2, listener3, listener4 };
  111. int i = 0;
  112. Dictionary<TraceListener, int> listeners = new Dictionary<TraceListener, int>();
  113. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection1))
  114. {
  115. i++;
  116. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  117. }
  118. foreach (TraceListener listener in filter.GetAvailableTraceListeners(traceListenersCollection2))
  119. {
  120. i++;
  121. listeners[listener] = (listeners.ContainsKey(listener) ? listeners[listener] : 0) + 1;
  122. }
  123. Assert.AreEqual(4, i);
  124. Assert.AreEqual(1, listeners[listener1]);
  125. Assert.AreEqual(1, listeners[listener2]);
  126. Assert.AreEqual(1, listeners[listener3]);
  127. Assert.AreEqual(1, listeners[listener4]);
  128. }
  129. }
  130. }