コード例 #1
0
        public void CreateProcessArgsForTestCallArrive()
        {
            DateTime           beginTime             = DateTime.Now;
            TimeSpan           runningTime           = new TimeSpan(2, 0, 0);
            double             callArriveMultiplier  = 0.1;
            double             switchDelayMultiplier = 0.1;
            List <ProductType> productTypes          = new List <ProductType> {
                new ProductType("Test", 0.1, 0.1)
            };
            int      maxQueueLength                = 10;
            bool     singleQueueLength             = true;
            TimeSpan excessiveWaitTime             = new TimeSpan(0, 1, 0);
            Dictionary <SalesRepType, int> repNums = new Dictionary <SalesRepType, int>();

            repNums.Add(new SalesRepType("Test"), 2);
            Simulator sim = new Simulator(beginTime, runningTime, callArriveMultiplier, switchDelayMultiplier, productTypes, maxQueueLength, singleQueueLength, excessiveWaitTime, repNums);
            ProcessArgsFactory_Accessor target = new ProcessArgsFactory_Accessor(sim);

            Event e = new CallArriveEvent(null, DateTime.Now);

            EventProcessArgs actual;

            actual = target.CreateProcessArgsFor(e);
            Assert.IsInstanceOfType(actual, typeof(CallArriveProcessArgs));
        }
コード例 #2
0
        public void EventsTest()
        {
            Calendar target = new Calendar();

            Event callArrive = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(callArrive);
            Event switchComp = new SwitchCompletedEvent(null, DateTime.Now.AddMinutes(5));

            target.AddEvent(switchComp);
            Event serviceComp = new CompletedServiceEvent(null, DateTime.Now.AddMinutes(20));

            target.AddEvent(serviceComp);
            Event endRep = new EndReplicationEvent(DateTime.Now.AddMinutes(30));

            target.AddEvent(endRep);

            List <Event> expected = new List <Event> {
                switchComp, callArrive, serviceComp, endRep
            };

            List <Event> actual;

            actual = target.Events;
            for (int i = 0; i < expected.Count; i++)
            {
                Assert.AreEqual(expected[i], actual[i]);
            }
        }
コード例 #3
0
        public void RemoveEventTestSingleItemNotInCalendar()
        {
            Calendar target   = new Calendar();
            Event    toRemove = new CallArriveEvent(null, DateTime.Now);

            target.RemoveEvent(toRemove);
            Assert.AreEqual(0, target.Events.Count);
        }
コード例 #4
0
        public void CallArriveEventConstructorTest()
        {
            Call            entity    = new Call((uint)1);
            DateTime        eventTime = new DateTime();
            CallArriveEvent target    = new CallArriveEvent(entity, eventTime);

            Assert.IsInstanceOfType(target, typeof(CallArriveEvent));
        }
コード例 #5
0
        public void EntityTest()
        {
            Event target = new CallArriveEvent(new Call(1), DateTime.Now);
            Call  actual;

            actual = target.Entity;
            Assert.AreEqual((uint)1, actual.CallId);
        }
コード例 #6
0
        public void AddEventTestToEmptyCalendar()
        {
            Calendar target     = new Calendar();
            Event    eventToAdd = new CallArriveEvent(null, DateTime.Now);

            target.AddEvent(eventToAdd);

            Assert.AreEqual(eventToAdd, target.Events[0]);
        }
コード例 #7
0
        public void EventTimeTest()
        {
            DateTime now    = DateTime.Now;
            Event    target = new CallArriveEvent(new Call(1), now);
            DateTime actual;

            actual = target.EventTime;
            Assert.AreEqual(now, actual);
        }
コード例 #8
0
        public void NextEventTestOneItemCalendar()
        {
            Calendar target   = new Calendar();
            Event    expected = new CallArriveEvent(null, DateTime.Now);

            target.AddEvent(expected);
            Event actual;

            actual = target.NextEvent();
            Assert.AreEqual(expected, actual);
            Assert.AreEqual(0, target.Events.Count);
        }
コード例 #9
0
        public void AddEventTestToSecondInList()
        {
            Calendar target     = new Calendar();
            Event    eventToAdd = new CallArriveEvent(null, DateTime.Now);

            target.AddEvent(eventToAdd);
            Event secondEventToAdd = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(secondEventToAdd);


            Assert.AreEqual(eventToAdd, target.Events[0]);
            Assert.AreEqual(secondEventToAdd, target.Events[1]);
        }
コード例 #10
0
        public void RemoveEventTestMultipleItems()
        {
            Calendar target     = new Calendar();
            Event    callArrive = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(callArrive);
            Event switchComp = new SwitchCompletedEvent(null, DateTime.Now.AddMinutes(5));

            target.AddEvent(switchComp);
            Event serviceComp = new CompletedServiceEvent(null, DateTime.Now.AddMinutes(20));

            target.AddEvent(serviceComp);
            Event endRep = new EndReplicationEvent(DateTime.Now.AddMinutes(30));

            target.AddEvent(endRep);
            target.RemoveEvent(callArrive);
            Assert.AreEqual(3, target.Events.Count);
        }
コード例 #11
0
        public void NextEventTestMultipleItemCalendar()
        {
            Calendar target   = new Calendar();
            Event    padItem1 = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(padItem1);
            Event padItem2 = new CallArriveEvent(null, DateTime.Now.AddMinutes(5));

            target.AddEvent(padItem2);
            Event expected = new CallArriveEvent(null, DateTime.Now);

            target.AddEvent(expected);
            Event actual;

            actual = target.NextEvent();
            Assert.AreEqual(expected, actual);
            Assert.AreEqual(2, target.Events.Count);
        }
コード例 #12
0
        public void AddEventTestToMiddlePosition()
        {
            Calendar target     = new Calendar();
            Event    eventToAdd = new CallArriveEvent(null, DateTime.Now);

            target.AddEvent(eventToAdd);
            Event secondEventToAdd = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(secondEventToAdd);
            Event middleEvent = new CallArriveEvent(null, DateTime.Now.AddMinutes(5));

            target.AddEvent(middleEvent);


            Assert.AreEqual(eventToAdd, target.Events[0]);
            Assert.AreEqual(secondEventToAdd, target.Events[2]);
            Assert.AreEqual(middleEvent, target.Events[1]);
        }
コード例 #13
0
        public void NextEventOfTypeTestWithInvalidEnumReturnsNull()
        {
            Calendar target     = new Calendar();
            Event    callArrive = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(callArrive);
            Event switchComp  = new SwitchCompletedEvent(null, DateTime.Now.AddMinutes(5));
            Event serviceComp = new CompletedServiceEvent(null, DateTime.Now.AddMinutes(20));

            target.AddEvent(serviceComp);
            Event endRep = new EndReplicationEvent(DateTime.Now.AddMinutes(30));

            target.AddEvent(endRep);

            Event actual;

            actual = target.NextEventOfType((EEventType)10);
            Assert.IsNull(actual);
        }
コード例 #14
0
        public void NextEventOfTypeTestWithItemMatchEndReplication()
        {
            Calendar target     = new Calendar();
            Event    callArrive = new CallArriveEvent(null, DateTime.Now.AddMinutes(10));

            target.AddEvent(callArrive);
            Event switchComp = new SwitchCompletedEvent(null, DateTime.Now.AddMinutes(5));

            target.AddEvent(switchComp);
            Event serviceComp = new CompletedServiceEvent(null, DateTime.Now.AddMinutes(20));

            target.AddEvent(serviceComp);
            Event endRep = new EndReplicationEvent(DateTime.Now.AddMinutes(30));

            target.AddEvent(endRep);

            Event actual;

            actual = target.NextEventOfType(EEventType.EndReplication);
            Assert.AreEqual(endRep, actual);
        }
コード例 #15
0
        //
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        internal virtual Event CreateEvent()
        {
            Event target = new CallArriveEvent(null, DateTime.Now);

            return(target);
        }