Exemple #1
0
        public void SerializationAndEquality()
        {
            var intronPath     = Path.GetTempPath() + Guid.NewGuid() + ".dat";
            var originalIntron = new SimpleInterval(100, 200);

            // serialize the intron
            using (var writer = new ExtendedBinaryWriter(FileUtilities.GetCreateStream(intronPath)))
            {
                originalIntron.Write(writer);
            }

            // deserialize the intron
            SimpleInterval newIntron;

            using (var reader = new ExtendedBinaryReader(FileUtilities.GetReadStream(intronPath)))
            {
                newIntron = SimpleInterval.Read(reader);
            }

            Assert.Equal(originalIntron, newIntron);

            // test the equality operations
            Assert.True(originalIntron.Equals(newIntron));

            SimpleInterval nullIntron = null;

            // ReSharper disable once ExpressionIsAlwaysNull
            Assert.False(originalIntron.Equals(nullIntron));

            object nullObject = null;

            // ReSharper disable once ExpressionIsAlwaysNull
            Assert.False(originalIntron.Equals(nullObject));
        }
Exemple #2
0
        private static void SimpleTest()
        {
            IScheduledItem item = new SimpleInterval(new DateTime(2004, 1, 1), TimeSpan.FromMinutes(2));

            TestItem(item, new DateTime(2003, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2003, 1, 1), false, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), false, new DateTime(2004, 1, 1, 0, 2, 0));
            TestItem(item, new DateTime(2055, 1, 1), true, new DateTime(2055, 1, 1));

            item = new SimpleInterval(new DateTime(2004, 1, 1), TimeSpan.FromMinutes(2), 1);
            TestItem(item, new DateTime(2003, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2003, 1, 1), false, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), false, DateTime.MaxValue);
            TestItem(item, new DateTime(2004, 1, 1, 0, 0, 1), true, DateTime.MaxValue);

            item = new SimpleInterval(new DateTime(2004, 1, 1), TimeSpan.FromMinutes(2), 2);
            TestItem(item, new DateTime(2003, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2003, 1, 1), false, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), false, new DateTime(2004, 1, 1, 0, 2, 0));
            TestItem(item, new DateTime(2004, 1, 1, 0, 0, 1), true, new DateTime(2004, 1, 1, 0, 2, 0));
            TestItem(item, new DateTime(2004, 1, 1, 0, 3, 0), true, DateTime.MaxValue);

            item = new SimpleInterval(new DateTime(2004, 1, 1), TimeSpan.FromMinutes(2), 3);
            TestItem(item, new DateTime(2003, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2003, 1, 1), false, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), true, new DateTime(2004, 1, 1));
            TestItem(item, new DateTime(2004, 1, 1), false, new DateTime(2004, 1, 1, 0, 2, 0));
            TestItem(item, new DateTime(2004, 1, 1, 0, 0, 1), true, new DateTime(2004, 1, 1, 0, 2, 0));
            TestItem(item, new DateTime(2004, 1, 1, 0, 3, 0), true, new DateTime(2004, 1, 1, 0, 4, 0));
            TestItem(item, new DateTime(2004, 1, 1, 0, 5, 0), true, DateTime.MaxValue);
        }
Exemple #3
0
        public void HashCode()
        {
            var originalIntron = new SimpleInterval(100, 200);

            const int expectedHashCode = 172;
            var       observedHashCode = originalIntron.GetHashCode();

            Assert.Equal(expectedHashCode, observedHashCode);
        }
        public void AllowTheFirstRequestItReceives()
        {
            // Arrange
            var strategy = new SimpleInterval(new SimpleIntervalConfig(150));

            // Act
            bool isAllowed = strategy.IsAllowed(DateTime.Now);

            // Assert
            Assert.That(isAllowed, Is.True);
        }
        public void AllowRequestIfOverIntervalPeriod()
        {
            // Arrange
            var strategy = new SimpleInterval(new SimpleIntervalConfig(10000));
            DateTime firstRequestTime = DateTime.Now;
            strategy.IsAllowed(firstRequestTime);

            // Act
            bool isAllowed = strategy.IsAllowed(firstRequestTime.AddMilliseconds(10001));

            // Assert
            Assert.That(isAllowed, Is.True);
        }
Exemple #6
0
        private static void MultipleAsyncJobTimer()
        {
            DateTime       now = DateTime.Now;
            Delegate       d   = new dOutput(Output);
            IScheduledItem item;

            item = new SimpleInterval(now, new TimeSpan(0, 0, 1));
            _Timer.AddAsyncJob(item, d, "one");

            item = new SimpleInterval(now, new TimeSpan(0, 0, 3));
            _Timer.AddAsyncJob(item, d, "three");

            item = new SimpleInterval(now, new TimeSpan(0, 0, 2));
            _Timer.AddAsyncJob(item, d, "two");

            _Timer.Error += new ExceptionEventHandler(_Timer_Error);
            _Timer.Start();
        }
Exemple #7
0
        static void MultipleAsyncJobTimer()
        {
            var now = DateTime.Now;
            var d   = new OrderedOutput(Output);

            var item = new SimpleInterval(now, new TimeSpan(0, 0, 1));

            Timer.AddAsyncJob(item, d, "one");

            item = new SimpleInterval(now, new TimeSpan(0, 0, 3));
            Timer.AddAsyncJob(item, d, "three");

            item = new SimpleInterval(now, new TimeSpan(0, 0, 2));
            Timer.AddAsyncJob(item, d, "two");

            Timer.Error += Timer_Error;
            Timer.Start();
        }
Exemple #8
0
        static void MultipleJobTimer()
        {
            var dtNow = DateTime.Now;
            var func  = new OrderedOutput(Output);

            SimpleInterval item;

            //item = new SimpleInterval(dtNow, new TimeSpan(0, 0, 1));
            //_Timer.AddJob(item, func, "error");

            item = new SimpleInterval(dtNow, new TimeSpan(0, 0, 3));
            Timer.AddJob(item, func, "three");

            item = new SimpleInterval(dtNow, new TimeSpan(0, 0, 2));
            Timer.AddJob(item, func, "two");

            Timer.Error += Timer_Error;
            Timer.Start();
        }