public DataCash3DSecureRequestBuilder(DataCash3DSecureConfiguration configuration, HttpRequestBase httpRequest)
     : base(configuration)
 {
     if (httpRequest == null) throw new ArgumentNullException("httpRequest");
     _configuration = configuration;
     _httpRequest = httpRequest;
     SystemTime = new TimeProvider();
 }
        protected TimerState(MainWindow mainWindow, TimeProvider timeProvider, State state)
        {
            mainWindow.Should().NotBeNull();
            timeProvider.Should().NotBeNull();

            this.MainWindow = mainWindow;
            this.Timer = timeProvider.GetTime();
            this.State = state;
            this.UpdateMainWindow();
        }
        private TimerState CreateTimerState(State nextState, TimeProvider timeProvider)
        {
            timeProvider.Should().NotBeNull();
            (State != nextState).Should().BeTrue();

            switch (nextState)
            {
                case State.Idle:                return new Idle               (MainWindow, timeProvider);
                case State.PreparationRunning:  return new PreparationRunning (MainWindow, timeProvider);
                case State.PreparationPaused:   return new PreparationPaused  (MainWindow, timeProvider);
                case State.PresentationRunning: return new PresentationRunning(MainWindow, timeProvider);
                case State.PresentationPaused:  return new PresentationPaused (MainWindow, timeProvider);
                case State.QuestionsRunning:    return new QuestionsRunning   (MainWindow, timeProvider);
                case State.QuestionsPaused:     return new QuestionsPaused    (MainWindow, timeProvider);
                default: throw new ArgumentException("Requested state doesn't exist.");
            }
        }
Esempio n. 4
0
        public void GetInfo_JustCreated_ReturnsValidResult()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            // Act
            var info = job.GetInfo(null);

            // Assert
            Assert.That(info.CurrentRun, Is.Null);
            Assert.That(info.NextDueTime, Is.EqualTo(TestHelper.NeverCopy));
            Assert.That(info.NextDueTimeIsOverridden, Is.False);
            Assert.That(info.RunCount, Is.Zero);
            Assert.That(info.Runs, Is.Empty);
        }
Esempio n. 5
0
        public void Callback_UInt32_MultipleIntervalHitInSingleAdvance()
        {
            using (var delorean = new Delorean(true))
            {
                delorean.Freeze();

                object expectedState = new object();

                int fired = 0;

                using (var timer = TimeProvider.Timer((state) => { fired++; }, null, 100u, 50u))
                {
                    delorean.Advance(100);

                    Assert.AreEqual(1, fired);

                    delorean.Advance(150);

                    Assert.AreEqual(4, fired);
                }
            }
        }
Esempio n. 6
0
 public FilterSpecCompilerArgs(
     IContainer container,
     IDictionary<string, Pair<EventType, string>> taggedEventTypes,
     IDictionary<string, Pair<EventType, string>> arrayEventTypes,
     ExprEvaluatorContext exprEvaluatorContext,
     string statementName,
     int statementId,
     StreamTypeService streamTypeService,
     EngineImportService engineImportService,
     TimeProvider timeProvider,
     VariableService variableService,
     TableService tableService,
     EventAdapterService eventAdapterService,
     FilterBooleanExpressionFactory filterBooleanExpressionFactory,
     ScriptingService scriptingService,
     Attribute[] annotations,
     ContextDescriptor contextDescriptor,
     ConfigurationInformation configurationInformation,
     StatementExtensionSvcContext statementExtensionSvcContext)
 {
     Container = container;
     TaggedEventTypes = taggedEventTypes;
     ArrayEventTypes = arrayEventTypes;
     ExprEvaluatorContext = exprEvaluatorContext;
     StatementName = statementName;
     StatementId = statementId;
     StreamTypeService = streamTypeService;
     EngineImportService = engineImportService;
     TimeProvider = timeProvider;
     VariableService = variableService;
     TableService = tableService;
     EventAdapterService = eventAdapterService;
     FilterBooleanExpressionFactory = filterBooleanExpressionFactory;
     ScriptingService = scriptingService;
     Annotations = annotations;
     ContextDescriptor = contextDescriptor;
     ConfigurationInformation = configurationInformation;
     StatementExtensionSvcContext = statementExtensionSvcContext;
 }
Esempio n. 7
0
        public void Change_TimeSpan_HasInitialAndInterval()
        {
            using (var delorean = new Delorean(true))
            {
                delorean.Freeze();

                int fired = 0;

                using (var timer = TimeProvider.Timer((state) => { fired++; }))
                {
                    timer.Change(TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(100));

                    delorean.Advance(100);

                    Assert.AreEqual(1, fired);

                    delorean.Advance(100);

                    Assert.AreEqual(2, fired);
                }
            }
        }
Esempio n. 8
0
        public void LocationShouldAllowUserToPlaceMoreOrdersAfterTwoHours()
        {
            var location = new Location(100);
            var user     = CreateUser(location);
            var orders   = new List <IOrder>
            {
                location.SuggestOrder(user),
                location.SuggestOrder(user),
                location.SuggestOrder(user)
            };
            var overTwoHoursAgo           = new PastTimeProvider(new TimeSpan(hours: 2, minutes: 10, seconds: 0));
            ICollection <IOrder> rejected = null;

            try
            {
                // order 130 minutes in the past
                TimeProvider.Current = overTwoHoursAgo;
                rejected             = location.Order(user, orders);
            }
            finally
            {
                // reset time
                TimeProvider.ResetToDefault();
            }
            // first order accepted
            Assert.Empty(rejected);
            // place more orders again in the present
            var orders2 = new List <IOrder>
            {
                location.SuggestOrder(user),
                location.SuggestOrder(user),
                location.SuggestOrder(user)
            };

            rejected = location.Order(user, orders2);
            // all orders should be accepted
            Assert.Empty(rejected);
        }
Esempio n. 9
0
        public async Task ForceStart_IsEnabledAndNotRunning_Starts()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.IsEnabled = true;

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync("Hello!");

                await Task.Delay(300, token);
            };

            // Act
            job.ForceStart();

            var info1 = job.GetInfo(null);

            await timeMachine.WaitUntilSecondsElapse(start, 0.6);

            var info2 = job.GetInfo(null);

            // Assert
            Assert.That(info1.CurrentRun, Is.Not.Null);
            Assert.That(info1.CurrentRun.Value.StartReason, Is.EqualTo(JobStartReason.Force));

            var run = info2.Runs.Single();

            Assert.That(run.StartReason, Is.EqualTo(JobStartReason.Force));
        }
        //Test when three shots are taken with 6 seconds between shots
        public void ShootGruntWithPulseRifle()
        {
            Weapon testWeapon = new PulseRifle();
            Enemy  testEnemy  = new Grunt();


            var timeMock = new Mock <TimeProvider>();

            timeMock.SetupGet(tp => tp.UtcNow).Returns(DateTime.UtcNow);
            TimeProvider.Current = timeMock.Object;
            testWeapon.AddAmmo(3);
            for (int i = 0; i < 3; i++)
            {
                testWeapon.Shoot(testEnemy);
                timeMock.SetupGet(tp => tp.UtcNow).Returns(DateTime.UtcNow.AddSeconds(6));
                TimeProvider.Current = timeMock.Object;
            }

            TimeProvider.ResetToDefault();
            int test = Grunt.Grunt_Starting_Energy - (3 * PulseRifle.Pulse_Rifle_Damage_Points);

            Assert.AreEqual(test, testEnemy.EnergyRemaining);
        }
        public void TwoNotificationAtSameTime()
        {
            var     time    = new TimeProvider();
            Message result  = null;
            var     manager =
                new Scheduler((t, b, n) => { result = new Message {
                                                 Title = t, Body = b, Name = n
                                             }; }, time.GetNow);

            manager.Enqueue("遠征終了", 1, "防空射撃演習");
            manager.Enqueue("疲労回復49", 1, "cond49");
            manager.Flush();
            PAssert.That(() => new Message {
                Title = "遠征が終わりました", Body = "第二艦隊 防空射撃演習", Name = "遠征終了"
            }.Equals(result));
            result = null;
            manager.Flush();
            PAssert.That(() => result == null);
            manager.Flush();
            PAssert.That(() => new Message {
                Title = "疲労が回復しました", Body = "第二艦隊", Name = "疲労回復"
            }.Equals(result));
        }
Esempio n. 12
0
        public void TestSetup()
        {
            // protect against external changes on TimeProvider
            TimeProvider.ResetToDefault();

            TestBlockchain.InitializeMockNeoSystem();

            // Create a MemoryPool with capacity of 100
            _unit = new MemoryPool(new NeoSystem(ProtocolSettings.Default with {
                MemoryPoolMaxTransactions = 100
            }));

            // Verify capacity equals the amount specified
            _unit.Capacity.Should().Be(100);

            _unit.VerifiedCount.Should().Be(0);
            _unit.UnVerifiedCount.Should().Be(0);
            _unit.Count.Should().Be(0);
            _unit2 = new MemoryPool(new NeoSystem(ProtocolSettings.Default with {
                MemoryPoolMaxTransactions = 0
            }));
            plugin = new TestIMemoryPoolTxObserverPlugin();
        }
Esempio n. 13
0
        protected override void DoWork()
        {
            CurrentTask.State = ExecutionState.Running;

            if (CurrentTask.StartTime.Value + CurrentTask.Estimation > TimeProvider.GetUtcNow())
            {
                return;
            }

            int FailNumber = int.Parse(CurrentTask.From.CustomFormat.Substring(CurrentTask.From.CustomFormat.Length - 1));

            //CurrentTask.EndTime = TimeProvider.GetUtcNow();
            if (CurrentTask.NumberOfRetries < FailNumber)
            {
                CurrentTask.State = ExecutionState.Failed;
                Release(CurrentTask);
            }
            else
            {
                CurrentTask.State = ExecutionState.Done;
                Debug.WriteLine($"{Urn} > {CurrentTask.Urn} done @ {CurrentTask.EndTime:s}.");
            }
        }
Esempio n. 14
0
        public async Task GetInfo_ArgumentIsZero_ReturnsEmptyRuns()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            job.IsEnabled = true;

            job.Routine = async(parameter, tracker, output, token) =>
            {
                await output.WriteAsync(parameter.ToString());
            };

            for (var i = 0; i < 10; i++)
            {
                var copy = i;
                job.Parameter = copy;
                job.ForceStart();
                await Task.Delay(100); // let job finish.
            }

            // Act
            var info = job.GetInfo(0);

            // Assert
            Assert.That(info.CurrentRun, Is.Null);
            Assert.That(info.NextDueTime, Is.EqualTo(TestHelper.NeverCopy));
            Assert.That(info.NextDueTimeIsOverridden, Is.False);
            Assert.That(info.RunCount, Is.EqualTo(10));
            Assert.That(info.Runs, Is.Empty);
        }
Esempio n. 15
0
        public bool Update(PotUser entity)
        {
            Check.IsNotNull(entity, "Pot participant should be provided");
            var updated = false;

            entity.ModificationDate = TimeProvider.Now();
            _logger.Info("Start updating user pot");
            try
            {
                using (var con = new DatabaseConnection(DatabaseType.PostgreSql, GetConnectionString()))
                {
                    using (var cmd = con.CreateCommand())
                    {
                        cmd.CommandType = CommandType.Text;
                        cmd.CommandText = UpdateQuery;
                        cmd.AddIntParameter(":pPOTIDT", entity.PotId);
                        cmd.AddIntParameter(":pUSRIDT", entity.UserId);
                        cmd.AddStringParameter(":pINDPAY", ConverterHelper.BoolToYesNoString(entity.HasPayed));
                        cmd.AddDoubleParameter(":pCURMNT", entity.Amount);
                        cmd.AddDoubleParameter(":pTGTMNT", entity.TargetAmount);
                        cmd.AddStringParameter(":pCANCELRSN", entity.CancellationReason);
                        cmd.AddStringParameter(":pINDCANCEL", ConverterHelper.BoolToYesNoString(entity.HasCancelled));
                        cmd.AddStringParameter(":pINDVAL", ConverterHelper.BoolToYesNoString(entity.HasValidated));
                        cmd.AddDateTimeParameter(":pDATEFT", entity.ModificationDate);
                        updated = cmd.ExecuteNonQuery() > 0;
                        _logger.Info("End updating user pot : " + (updated ? "Success" : "Failure"));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error while trying to update user pot with query : " + UpdateQuery, ex);
                throw new ImportExportException("Error occured during database access " + ex.Message, ex);
            }

            return(updated);
        }
Esempio n. 16
0
        /// <summary>
        /// Retrieves the date time from specified provider and defend against flooding
        /// </summary>
        internal static DateTime?GetTime(TimeProvider provider)
        {
            //Max requests are every 4 seconds
            if (!CanRequestTime(provider))
            {
                throw new Exception("Too many time requests!");
            }

            DateTime?dateTime;

            switch (provider)
            {
            case TimeProvider.Nist:
                dateTime = TimeRetrieverNtp.GetNtpTime("time-a.nist.gov");
                break;

            case TimeProvider.Microsoft:
                dateTime = TimeRetrieverNtp.GetNtpTime("time.windows.com");
                break;

            case TimeProvider.Google:
                dateTime = TimeRetrieverNtp.GetNtpTime("time.google.com");
                break;

            case TimeProvider.NtpOrg:
                dateTime = TimeRetrieverNtp.GetNtpTime("pool.ntp.org");
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(provider), provider, null);
            }

            //We don't use the LunaComputerTime as we need that this value is not affected by offsets
            TimeProviderLastRequests[provider] = DateTime.UtcNow;

            return(dateTime);
        }
        public void ProgressTracker_JobIsDisposedThenValueIsSet_ThrowsJobObjectDisposedException()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            var tracker1 = new MockProgressTracker();
            var tracker2 = new MockProgressTracker();

            // Act
            job.ProgressTracker = tracker1;
            job.Dispose();
            var ex = Assert.Throws <JobObjectDisposedException>(() => job.ProgressTracker = tracker2);

            // Assert
            Assert.That(job.ProgressTracker, Is.EqualTo(tracker1));
            Assert.That(ex.ObjectName, Is.EqualTo("my-job"));
        }
Esempio n. 18
0
        public void Callback_TimeSpan_HasInitialGreaterThanInterval()
        {
            using (var delorean = new Delorean(true))
            {
                delorean.Freeze();

                int fired = 0;

                using (var timer = TimeProvider.Timer((state) => fired++, null, TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(50)))
                {
                    delorean.Advance(50);

                    Assert.AreEqual(0, fired);

                    delorean.Advance(50);

                    Assert.AreEqual(1, fired);

                    delorean.Advance(50);

                    Assert.AreEqual(2, fired);
                }
            }
        }
        public bool Update(UserTrip entity)
        {
            Check.IsNotNull(entity, "UserTrip should not be null");
            bool updated = false;

            entity.ModificationDate = TimeProvider.Now();
            _logger.Info("Start update user's trip");

            try
            {
                using (var con = new DatabaseConnection(DatabaseType.PostgreSql, GetConnectionString()))
                {
                    using (var cmd = con.CreateCommand())
                    {
                        cmd.CommandType = CommandType.Text;
                        cmd.CommandText = UpdateQuery;
                        cmd.AddStringParameter(":pINDUSRPAR", ConverterHelper.BoolToYesNoString(entity.HasParticipated));
                        cmd.AddStringParameter(":pINDUSRORG", ConverterHelper.BoolToYesNoString(entity.HasOrganized));
                        cmd.AddDoubleParameter(":pUSRNOT", entity.UserNote);
                        cmd.AddDoubleParameter(":pTRPMNT", entity.TripAmount);
                        cmd.AddIntParameter(":pUSRIDT", entity.UserId);
                        cmd.AddStringParameter(":pTRPNAM", entity.TripName);
                        cmd.AddDateTimeParameter(":pDATEFT", entity.ModificationDate);
                        updated = cmd.ExecuteNonQuery() > 0;
                        _logger.Info("End update user's trip : " + (updated ? "Success" : "Failure"));
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Error while updating user's trip with query" + UpdateQuery, ex);
                throw new ImportExportException("Error occured during database access " + ex.Message, ex);
            }

            return(updated);
        }
Esempio n. 20
0
    void Update()
    {
        if (!gameRunning)
        {
            return;
        }

        var elapsed        = DateTime.Now.TimeOfDay - realStartTime;
        var simulationTime = simulationStartTime + elapsed + TimeSpan.FromSeconds(penaltyTime);

        if (simulationTime >= TimeSpan.FromHours(12))
        {
            gameRunning    = false;
            simulationTime = TimeSpan.FromHours(12);

            StopAllCoroutines();
            ClearAllGoblins();

            gameOverText.text = "Game Over!\nScore: " + (int)elapsed.TotalSeconds;
            gameOverText.gameObject.SetActive(true);
        }

        TimeProvider.UpdateOverrideTime(simulationTime);
    }
Esempio n. 21
0
        public void Get_Set_OColor()
        {
            TimeProvider.SetToday(new DateTime(2008, 1, 1));

            Alert alert = new Alert {
                EffectDate = new DateTime(2006, 1, 1), Amount = 1000
            };

            Assert.AreEqual(OAlertColors.Color1, alert.Color);

            alert.EffectDate = new DateTime(2007, 4, 1);
            Assert.AreEqual(OAlertColors.Color2, alert.Color);

            alert.EffectDate = new DateTime(2007, 10, 1);
            Assert.AreEqual(OAlertColors.Color3, alert.Color);

            alert.EffectDate = new DateTime(2007, 11, 1);
            Assert.AreEqual(OAlertColors.Color4, alert.Color);

            alert.EffectDate = new DateTime(2007, 12, 1);
            Assert.AreEqual(OAlertColors.Color5, alert.Color);

            alert.EffectDate = new DateTime(2007, 12, 6);
            Assert.AreEqual(OAlertColors.Color6, alert.Color);

            alert.EffectDate = new DateTime(2008, 1, 1);
            Assert.AreEqual(OAlertColors.Color7, alert.Color);

            Alert alertSavings = new Alert {
                EffectDate = new DateTime(2006, 1, 1), Amount = -1000
            };

            Assert.AreEqual(OAlertColors.Color1, alertSavings.Color);

            TimeProvider.SetToday(DateTime.Today);
        }
Esempio n. 22
0
        public void Callback_UInt32_HasInitialGreaterThanInterval()
        {
            using (var delorean = new Delorean(true))
            {
                delorean.Freeze();

                int fired = 0;

                using (var timer = TimeProvider.Timer((state) => fired++, null, 100u, 50u))
                {
                    delorean.Advance(50);

                    Assert.AreEqual(0, fired);

                    delorean.Advance(50);

                    Assert.AreEqual(1, fired);

                    delorean.Advance(50);

                    Assert.AreEqual(2, fired);
                }
            }
        }
Esempio n. 23
0
        public void ManualFlashTest()
        {
            var cs  = new CherryService();
            var tp  = new TimeProvider();
            var ps  = new PomodoroSensor();
            var ic  = new IconController();
            var icn = new CherryTomato.Reminders.SystrayIconNotifier.IconNotifier();

            cs.PluginRepository.RegisterPlugin(tp);
            cs.PluginRepository.RegisterPlugin(ps);
            cs.PluginRepository.RegisterPlugin(ic);
            cs.PluginRepository.RegisterPlugin(icn);
            cs.InitializeCherryServiceEventsAndCommands();
            cs.PluginRepository.TieEvents();

            icn.Notify(new IconNotification {
                FlashCount = 10, FlashIconPath = "res://pomodoro.ico", NotificationText = "Flash test"
            });

            Assert.That(MessageBox.Show("Did the icon flash?", "Manual assert", MessageBoxButtons.YesNo),
                        Is.EqualTo(DialogResult.Yes));

            cs.Dispose();
        }
Esempio n. 24
0
        public void Output_JobIsDisposedThenValueIsSet_ThrowsJobObjectDisposedException()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            var writer1 = new StringWriterWithEncoding(Encoding.UTF8);
            var writer2 = new StringWriterWithEncoding(Encoding.UTF8);

            // Act
            job.Output = writer1;
            job.Dispose();
            var ex = Assert.Throws <JobObjectDisposedException>(() => job.Output = writer2);

            // Assert
            Assert.That(job.Output, Is.EqualTo(writer1));
            Assert.That(ex.ObjectName, Is.EqualTo("my-job"));
        }
Esempio n. 25
0
        public async Task Routine_SetAfterPreviousRunCompleted_SetsValueAndRunsWithIt()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);
            var job = jobManager.Create("my-job");

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var output = new StringWriterWithEncoding(Encoding.UTF8);

            job.Output = output;

            JobDelegate routine1 = async(parameter, tracker, writer, token) =>
            {
                await writer.WriteAsync("First Routine!");

                await Task.Delay(1500, token);
            };

            JobDelegate routine2 = async(parameter, tracker, writer, token) =>
            {
                await writer.WriteAsync("Second Routine!");

                await Task.Delay(1500, token);
            };

            job.Schedule = new ConcreteSchedule(
                start.AddSeconds(1),
                start.AddSeconds(4));

            job.IsEnabled = true;

            // Act
            job.Routine = routine1;
            var updatedRoutine1 = job.Routine;

            await timeMachine.WaitUntilSecondsElapse(start, 2.9); // job with routine1 will complete

            var output1 = output.ToString();

            await timeMachine.WaitUntilSecondsElapse(start, 3.0);

            job.Routine = routine2;
            var updatedRoutine2 = job.Routine;

            await timeMachine.WaitUntilSecondsElapse(start, 6.0);

            var output2 = output.ToString();

            // Assert
            try
            {
                Assert.That(updatedRoutine1, Is.SameAs(routine1));
                Assert.That(output1, Is.EqualTo("First Routine!"));

                Assert.That(updatedRoutine2, Is.SameAs(routine2));
                Assert.That(output2, Is.EqualTo("First Routine!Second Routine!"));
            }
            catch (Exception ex)
            {
                var sb = new StringBuilder();
                sb.AppendLine("*** Test Failed ***");
                sb.AppendLine(ex.ToString());
                sb.AppendLine("*** Log: ***");

                var log = _logWriter.ToString();

                sb.AppendLine(log);

                Assert.Fail(sb.ToString());
            }
        }
        public async Task CanOperateFridge()
        {
            using (TimeProvider.StartUsing(timeProvider))
            {
                fridge.StateString.Should().Be("Closed Idle Light off");
                await fridge.TemperatureChanges(40);

                fridge.StateString.Should().Be("Closed Cooling Light off");

                await fridge.TemperatureChanges(33);

                fridge.StateString.Should().Be("Closed Idle Light off");

                await fridge.DoorOpens();

                fridge.StateString.Should().Be("Open Idle Light on");

                await fridge.TemperatureChanges(40);

                fridge.StateString.Should().Be("Open Idle Light on");

                await fridge.DoorCloses();

                fridge.StateString.Should().Be("Closed Idle Light off");

                timeProvider.Add(minutes: 5);
                await fridge.Tick();

                fridge.StateString.Should().Be("Closed Cooling Light off");

                await fridge.DoorOpens();

                timeProvider.Add(minutes: 5);
                await fridge.Tick();

                await fridge.DoorCloses();

                fridge.StateString.Should().Be("Closed Idle Light off");

                await fridge.TemperatureChanges(40);

                fridge.StateString.Should().Be("Closed Cooling Light off");

                await fridge.DoorOpens();

                fridge.StateString.Should().Be("Open Idle Light on");

                timeProvider.Add(minutes: 60);
                await fridge.Tick();

                fridge.StateString.Should().Be("Open Defrosting Light on");

                timeProvider.Add(minutes: 5);
                await fridge.Tick();

                fridge.StateString.Should().Be("Open Cooling Light on");

                await fridge.DoorCloses();

                fridge.StateString.Should().Be("Closed Cooling Light off");

                timeProvider.Add(minutes: 60);
                await fridge.Tick();

                fridge.StateString.Should().Be("Closed Defrosting Light off");

                await fridge.DoorOpens();

                fridge.StateString.Should().Be("Open Defrosting Light on");

                await fridge.TemperatureChanges(40);

                fridge.StateString.Should().Be("Open Defrosting Light on");

                await fridge.DoorCloses();

                fridge.StateString.Should().Be("Closed Defrosting Light off");

                await fridge.TemperatureChanges(33);

                fridge.StateString.Should().Be("Closed Defrosting Light off");
            }
        }
Esempio n. 27
0
 public void SetUp()
 {
     _mockProvider = Substitute.For<TimeProvider>();
     TimeProvider.Current = _mockProvider;
 }
Esempio n. 28
0
 private async void setButtonTimeCaption(TimeProvider timeProvider)
 {
     // update the button's text
     await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => {
         Button button = (Button)timeProvider.getSender();
         ButtonDataServer buttonDataContext = (ButtonDataServer)button.DataContext;
         buttonDataContext.TimeValue = timeProvider.formatTime();
         buttonDataContext.MoveValue = loader.GetString("button_moves") + ": " + timeProvider.iterationCount.ToString();
     });
 }
Esempio n. 29
0
 public void RunBeforeEveryTest()
 {
     this.TestProvider = new TimeProvider();
 }
 public PreparationRunning(MainWindow mainWindow, TimeProvider timeProvider)
     : base(mainWindow, timeProvider, State.PreparationRunning)
 {
 }
Esempio n. 31
0
 public void TestCleanup()
 {
     // important to leave TimeProvider correct
     TimeProvider.ResetToDefault();
 }
Esempio n. 32
0
 /// <summary>
 /// Class for playing back audio into a user supplied IWavePlayer, using an NAudio BufferedWaveProvider
 /// </summary>
 /// <param name="outputDeviceFactory">Func for creating the output device</param>
 /// <param name="dacLatency">Output device latency</param>
 /// <param name="bufferDurationMs">Length of our output buffer (ms)</param>
 /// <param name="offsetToleranceMs">How far we can be off before resorting to a hard sync (this causes an audible pop)</param>
 public NAudioPlayer(int dacLatency, int bufferDurationMs, int offsetToleranceMs, Func <IWavePlayer> outputDeviceFactory, TimeProvider customTimeProvider = null)
     : base(dacLatency, bufferDurationMs, offsetToleranceMs)
 {
     m_OutputDeviceFactory = outputDeviceFactory;
     m_TimeProvider        = customTimeProvider;
 }
Esempio n. 33
0
        public async Task Routine_ReturnsFaultedTask_LogsFaultedTask()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);
            var job = jobManager.Create("my-job");

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var output = new StringWriterWithEncoding(Encoding.UTF8);

            job.Output = output;

            var exception = new NotSupportedException("Bye baby!");

            JobDelegate routine = (parameter, tracker, writer, token) =>
            {
                writer.WriteLine("Hi there!");
                return(Task.FromException(exception));
            };

            job.Schedule = new ConcreteSchedule(
                start.AddSeconds(1));

            job.IsEnabled = true;

            // Act
            job.Routine = routine;
            var updatedRoutine = job.Routine;

            await timeMachine.WaitUntilSecondsElapse(start, 1.5); // will fail by this time

            var outputResult = output.ToString();

            var info = job.GetInfo(null);

            // Assert
            try
            {
                Assert.That(updatedRoutine, Is.SameAs(routine));
                Assert.That(outputResult, Does.Contain("Hi there!"));
                Assert.That(outputResult, Does.Contain(exception.ToString()));

                Assert.That(info.CurrentRun, Is.Null);

                Assert.That(info.RunCount, Is.EqualTo(1));
                var run = info.Runs.Single();

                Assert.That(run.Status, Is.EqualTo(JobRunStatus.Faulted));
                Assert.That(run.Exception, Is.SameAs(exception));
                Assert.That(run.Output, Does.Contain(exception.ToString()));

                var log = _logWriter.ToString();

                Assert.That(log,
                            Does.Contain($"Job 'my-job' completed synchronously. Reason of start was 'ScheduleDueTime'."));
            }
            catch (Exception ex)
            {
                var sb = new StringBuilder();
                sb.AppendLine("*** Test Failed ***");
                sb.AppendLine(ex.ToString());
                sb.AppendLine("*** Log: ***");

                var log = _logWriter.ToString();

                sb.AppendLine(log);

                Assert.Fail(sb.ToString());
            }
        }
Esempio n. 34
0
 public void onTimeProviderTick(TimeProvider timeProvider)
 {
     setButtonTimeCaption(timeProvider);
 }
Esempio n. 35
0
        public async Task Routine_SetOnTheFly_CompletesWithOldRoutineAndThenStartsWithNewRoutine()
        {
            // Arrange
            using IJobManager jobManager = TestHelper.CreateJobManager(true);

            var start       = "2000-01-01Z".ToUtcDateOffset();
            var timeMachine = ShiftedTimeProvider.CreateTimeMachine(start);

            TimeProvider.Override(timeMachine);

            var job = jobManager.Create("my-job");

            var output = new StringWriterWithEncoding(Encoding.UTF8);

            job.Output = output;

            job.Schedule = new SimpleSchedule(SimpleScheduleKind.Second, 1, start);

            async Task Routine1(object parameter, IProgressTracker tracker, TextWriter writer, CancellationToken token)
            {
                await writer.WriteAsync("First Routine!");

                await Task.Delay(1500, token);
            }

            async Task Routine2(object parameter, IProgressTracker tracker, TextWriter writer, CancellationToken token)
            {
                await writer.WriteAsync("Second Routine!");

                await Task.Delay(1500, token);
            }

            job.IsEnabled = true;
            job.Routine   = Routine1;

            // Act
            await timeMachine.WaitUntilSecondsElapse(start, 1.4);

            job.Routine = Routine2;

            await timeMachine.WaitUntilSecondsElapse(start, 2.8);

            var output1 = output.ToString();

            await timeMachine.WaitUntilSecondsElapse(start, 4.8);

            var output2 = output.ToString();

            jobManager.Dispose();

            var info = job.GetInfo(null);

            // Assert
            try
            {
                Assert.That(info.NextDueTime, Is.EqualTo(start.AddSeconds(5)));

                Assert.That(info.CurrentRun, Is.Null);
                Assert.That(info.RunCount, Is.EqualTo(2));
                Assert.That(info.Runs, Has.Count.EqualTo(2));

                var run0 = info.Runs[0];
                Assert.That(run0.DueTime, Is.EqualTo(start.AddSeconds(1)));
                Assert.That(run0.Output, Is.EqualTo("First Routine!"));
                Assert.That(output1, Is.EqualTo("First Routine!"));

                var run1 = info.Runs[1];
                Assert.That(run1.DueTime, Is.EqualTo(start.AddSeconds(3)));
                Assert.That(run1.Output, Is.EqualTo("Second Routine!"));
                Assert.That(output2, Is.EqualTo("First Routine!Second Routine!"));
            }
            catch (Exception ex)
            {
                var sb = new StringBuilder();
                sb.AppendLine("*** Test Failed ***");
                sb.AppendLine(ex.ToString());
                sb.AppendLine("*** Log: ***");

                var log = _logWriter.ToString();

                sb.AppendLine(log);

                Assert.Fail(sb.ToString());
            }
        }
 public PresentationPaused(MainWindow mainWindow, TimeProvider timeProvider)
     : base(mainWindow, timeProvider, State.PresentationPaused)
 {
 }
 public IPizzaMessageMapper(BasicMessageFieldFinder basicMessageFieldFinder, MacCalculatorFactory macCalculatorFactory, TimeProvider timeProvider)
 {
     _macCalculatorFactory    = macCalculatorFactory;
     _basicMessageFieldFinder = basicMessageFieldFinder;
     _timeProvider            = timeProvider;
 }
Esempio n. 38
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CachedMonitor" /> class.
 /// </summary>
 /// <param name="baseMonitor">The monitor to wrap.</param>
 /// <param name="sec">The update interval in seconds.</param>
 /// <param name="timeProvider">The custom time provider to use.</param>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="baseMonitor" /> is <see langword="null" />.
 /// </exception>
 public CachedMonitor(IMonitor baseMonitor, double sec, TimeProvider timeProvider = null)
     : this(baseMonitor: baseMonitor,
            updateInterval: TimeSpan.FromSeconds(sec),
            timeProvider: timeProvider)
 {
 }
Esempio n. 39
0
        public void ConsensusService_Primary_Sends_PrepareRequest_After_OnStart()
        {
            TestProbe subscriber = CreateTestProbe();
            var       mockWallet = new Mock <Wallet>();

            mockWallet.Setup(p => p.GetAccount(It.IsAny <UInt160>())).Returns <UInt160>(p => new TestWalletAccount(p));
            ConsensusContext context = new ConsensusContext(mockWallet.Object, TestBlockchain.GetStore());

            int timeIndex  = 0;
            var timeValues = new[] {
                //new DateTime(1968, 06, 01, 0, 0, 15, DateTimeKind.Utc), // For tests here
                new DateTime(1968, 06, 01, 0, 0, 1, DateTimeKind.Utc),                               // For receiving block
                new DateTime(1968, 06, 01, 0, 0, (int)Blockchain.SecondsPerBlock, DateTimeKind.Utc), // For Initialize
                new DateTime(1968, 06, 01, 0, 0, 15, DateTimeKind.Utc),                              // unused
                new DateTime(1968, 06, 01, 0, 0, 15, DateTimeKind.Utc)                               // unused
            };

            //TimeProvider.Current.UtcNow.ToTimestamp().Should().Be(4244941711); //1968-06-01 00:00:15

            Console.WriteLine($"time 0: {timeValues[0].ToString()} 1: {timeValues[1].ToString()} 2: {timeValues[2].ToString()} 3: {timeValues[3].ToString()}");

            var timeMock = new Mock <TimeProvider>();

            timeMock.SetupGet(tp => tp.UtcNow).Returns(() => timeValues[timeIndex])
            .Callback(() => timeIndex++);
            //new DateTime(1968, 06, 01, 0, 0, 15, DateTimeKind.Utc));
            TimeProvider.Current = timeMock.Object;

            //public void Log(string message, LogLevel level)
            // TODO: create ILogPlugin for Tests

            /*
             * mockConsensusContext.Setup(mr => mr.Log(It.IsAny<string>(), It.IsAny<LogLevel>()))
             *           .Callback((string message, LogLevel level) => {
             *                           Console.WriteLine($"CONSENSUS LOG: {message}");
             *                                                     }
             *                    );
             */

            // Creating proposed block
            Header header = new Header();

            TestUtils.SetupHeaderWithValues(header, UInt256.Zero, out UInt256 merkRootVal, out UInt160 val160, out uint timestampVal, out uint indexVal, out Witness scriptVal);
            header.Size.Should().Be(101);

            Console.WriteLine($"header {header} hash {header.Hash} timstamp {timestampVal}");

            timestampVal.Should().Be(4244941696); //1968-06-01 00:00:00
                                                  // check basic ConsensusContext
                                                  //mockConsensusContext.Object.block_received_time.ToTimestamp().Should().Be(4244941697); //1968-06-01 00:00:01

            // ============================================================================
            //                      creating ConsensusService actor
            // ============================================================================

            TestActorRef <ConsensusService> actorConsensus = ActorOfAsTestActorRef <ConsensusService>(
                Akka.Actor.Props.Create(() => (ConsensusService)Activator.CreateInstance(typeof(ConsensusService), BindingFlags.Instance | BindingFlags.NonPublic, null, new object[] { subscriber, subscriber, context }, null))
                );

            Console.WriteLine("will trigger OnPersistCompleted!");
            actorConsensus.Tell(new Blockchain.PersistCompleted
            {
                Block = new Block
                {
                    Version       = header.Version,
                    PrevHash      = header.PrevHash,
                    MerkleRoot    = header.MerkleRoot,
                    Timestamp     = header.Timestamp,
                    Index         = header.Index,
                    NextConsensus = header.NextConsensus
                }
            });

            // OnPersist will not launch timer, we need OnStart

            Console.WriteLine("will start consensus!");
            actorConsensus.Tell(new ConsensusService.Start
            {
                IgnoreRecoveryLogs = true
            });

            Console.WriteLine("OnTimer should expire!");
            Console.WriteLine("Waiting for subscriber message!");
            // Timer should expire in one second (block_received_time at :01, initialized at :02)

            var answer = subscriber.ExpectMsg <LocalNode.SendDirectly>();

            Console.WriteLine($"MESSAGE 1: {answer}");
            //var answer2 = subscriber.ExpectMsg<LocalNode.SendDirectly>(); // expects to fail!

            // ============================================================================
            //                      finalize ConsensusService actor
            // ============================================================================

            //Thread.Sleep(4000);
            Sys.Stop(actorConsensus);
            TimeProvider.ResetToDefault();

            Assert.AreEqual(1, 1);
        }
 public QuestionsRunning(MainWindow mainWindow, TimeProvider timeProvider)
     : base(mainWindow, timeProvider, State.QuestionsRunning)
 {
 }
Esempio n. 41
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CachedMonitor" /> class.
 /// </summary>
 /// <param name="baseMonitor">The monitor to wrap.</param>
 /// <param name="updateInterval">The update interval.</param>
 /// <param name="timeProvider">The custom time provider to use.</param>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="baseMonitor" /> is <see langword="null" />.
 /// </exception>
 public CachedMonitor(IMonitor baseMonitor, TimeSpan updateInterval, TimeProvider timeProvider = null)
     : base(baseMonitor: baseMonitor)
 {
     _TIME_PROVIDER = timeProvider ?? GetNow;
     _UPDATE_INTERVAL = updateInterval;
 }
 public Idle(MainWindow mainWindow, TimeProvider timeProvider)
     : base(mainWindow, timeProvider, State.Idle)
 {
 }