public void Sync_ShouldPrevent_Recursion() { Action syncBack = null; _appSettings.StartOnStartup.Returns(true); _autoStartup.Enabled.Returns(false); _autoStartup.When(x => x.Enabled = Arg.Any <bool>()).Do(x => { _autoStartup.Enabled.Returns(!x.Arg <bool>()); }); _scheduler.When(x => x.Schedule(Arg.Any <Action>())).Do(x => syncBack = x.Arg <Action>()); var startup = new SyncableAutoStartup(_appSettings, _scheduler, _autoStartup); _appSettings.When(x => x.StartOnStartup = Arg.Any <bool>()).Do(x => startup.Sync()); startup.Sync(); syncBack(); _autoStartup.Received(1).Enabled = true; _appSettings.Received(1).StartOnStartup = false; }
public void Sync_ShouldSet_AutoStartup_Enabled(bool value) { _appSettings.StartOnStartup.Returns(value); _autoStartup.Enabled.Returns(value); var startup = new SyncableAutoStartup(_appSettings, _scheduler, _autoStartup); startup.Sync(); _autoStartup.Received(1).Enabled = value; }
public void Sync_ShouldSchedule_SyncBack_WhenSyncFails() { _appSettings.StartOnStartup.Returns(true); _autoStartup.Enabled.Returns(false); _autoStartup.When(x => x.Enabled = Arg.Any <bool>()).Do(x => { _autoStartup.Enabled.Returns(false); }); var startup = new SyncableAutoStartup(_appSettings, _scheduler, _autoStartup); startup.Sync(); _appSettings.DidNotReceive().StartOnStartup = Arg.Any <bool>(); _scheduler.Received(1).Schedule(Arg.Any <Action>()); }