nicko       2004/06/02 09:31:21

  Modified:    tests/src log4net.Tests.csproj
  Added:       tests/src/Util CyclicBufferTest.cs
  Log:
  Added tests for the CyclicBuffer type
  
  Revision  Changes    Path
  1.6       +5 -0      logging-log4net/tests/src/log4net.Tests.csproj
  
  Index: log4net.Tests.csproj
  ===================================================================
  RCS file: /home/cvs/logging-log4net/tests/src/log4net.Tests.csproj,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- log4net.Tests.csproj      20 May 2004 19:40:49 -0000      1.5
  +++ log4net.Tests.csproj      2 Jun 2004 16:31:21 -0000       1.6
  @@ -148,6 +148,11 @@
                       BuildAction = "Compile"
                   />
                   <File
  +                    RelPath = "Util\CyclicBufferTest.cs"
  +                    SubType = "Code"
  +                    BuildAction = "Compile"
  +                />
  +                <File
                       RelPath = "Util\PropertiesDictionaryTest.cs"
                       SubType = "Code"
                       BuildAction = "Compile"
  
  
  
  1.1                  logging-log4net/tests/src/Util/CyclicBufferTest.cs
  
  Index: CyclicBufferTest.cs
  ===================================================================
  #region Copyright & License
  //
  // Copyright 2001-2004 The Apache Software Foundation
  //
  // Licensed under the Apache License, Version 2.0 (the "License");
  // you may not use this file except in compliance with the License.
  // You may obtain a copy of the License at
  //
  // http://www.apache.org/licenses/LICENSE-2.0
  //
  // Unless required by applicable law or agreed to in writing, software
  // distributed under the License is distributed on an "AS IS" BASIS,
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  // See the License for the specific language governing permissions and
  // limitations under the License.
  //
  #endregion
  
  using System;
  using System.IO;
  using System.Diagnostics;
  using System.Globalization;
  using System.Runtime.Serialization.Formatters.Binary;
  using System.Runtime.Serialization;
  
  using log4net.Config;
  using log4net.Util;
  using log4net.Layout;
  using log4net.Core;
  using log4net.Appender;
  using log4net.Repository;
  
  using NUnit.Framework;
  
  namespace log4net.Tests.Util
  {
        /// <summary>
        /// Used for internal unit testing the <see 
cref="PropertiesDictionary"/> class.
        /// </summary>
        /// <remarks>
        /// Used for internal unit testing the <see 
cref="PropertiesDictionary"/> class.
        /// </remarks>
        [TestFixture] public class CyclicBufferTest
        {
                [Test, ExpectedException(typeof(ArgumentOutOfRangeException))]
                public void TestConstructorSize0()
                {
                        CyclicBuffer cb = new CyclicBuffer(0);
                }
  
                [Test] public void TestSize1()
                {
                        CyclicBuffer cb = new CyclicBuffer(1);
  
                        Assertion.AssertEquals("Empty Buffer should have length 
0", 0, cb.Length);
                        Assertion.AssertEquals("Buffer should have max size 1", 
1, cb.MaxSize);
  
                        LoggingEvent event1 = new LoggingEvent(null, null, 
null, null, null, null);
                        LoggingEvent event2 = new LoggingEvent(null, null, 
null, null, null, null);
  
                        LoggingEvent discardedEvent = cb.Append(event1);
  
                        Assertion.AssertNull("No event should be discarded 
untill the buffer is full", discardedEvent);
                        Assertion.AssertEquals("Buffer should have length 1", 
1, cb.Length);
                        Assertion.AssertEquals("Buffer should still have max 
size 1", 1, cb.MaxSize);
  
  
                        discardedEvent = cb.Append(event2);
  
                        Assertion.AssertSame("Expect event1 to now be 
discarded", event1, discardedEvent);
                        Assertion.AssertEquals("Buffer should still have length 
1", 1, cb.Length);
                        Assertion.AssertEquals("Buffer should really still have 
max size 1", 1, cb.MaxSize);
  
                        LoggingEvent[] discardedEvents = cb.PopAll();
  
                        Assertion.AssertEquals("Poped events length should be 
1", 1, discardedEvents.Length);
                        Assertion.AssertSame("Expect event2 to now be popped", 
event2, discardedEvents[0]);
                        Assertion.AssertEquals("Buffer should be back to length 
0", 0, cb.Length);
                        Assertion.AssertEquals("Buffer should really really 
still have max size 1", 1, cb.MaxSize);
                }
  
                [Test] public void TestSize2()
                {
                        CyclicBuffer cb = new CyclicBuffer(2);
  
                        Assertion.AssertEquals("Empty Buffer should have length 
0", 0, cb.Length);
                        Assertion.AssertEquals("Buffer should have max size 2", 
2, cb.MaxSize);
  
                        LoggingEvent event1 = new LoggingEvent(null, null, 
null, null, null, null);
                        LoggingEvent event2 = new LoggingEvent(null, null, 
null, null, null, null);
                        LoggingEvent event3 = new LoggingEvent(null, null, 
null, null, null, null);
  
                        LoggingEvent discardedEvent = null;
                        
                        discardedEvent = cb.Append(event1);
                        Assertion.AssertNull("No event should be discarded 
after append 1", discardedEvent);
                        discardedEvent = cb.Append(event2);
                        Assertion.AssertNull("No event should be discarded 
after append 2", discardedEvent);
  
                        discardedEvent = cb.Append(event3);
                        Assertion.AssertSame("Expect event1 to now be 
discarded", event1, discardedEvent);
  
                        discardedEvent = cb.PopOldest();
                        Assertion.AssertSame("Expect event2 to now be 
discarded", event2, discardedEvent);
  
                        LoggingEvent[] discardedEvents = cb.PopAll();
  
                        Assertion.AssertEquals("Poped events length should be 
1", 1, discardedEvents.Length);
                        Assertion.AssertSame("Expect event3 to now be popped", 
event3, discardedEvents[0]);
                        Assertion.AssertEquals("Buffer should be back to length 
0", 0, cb.Length);
                        Assertion.AssertEquals("Buffer should really really 
still have max size 2", 2, cb.MaxSize);
                }
        }
  }
  
  
  

Reply via email to