public async void Stop() { var dateTime = new Mock <IDateTime>(); dateTime.Setup(d => d.UtcNow).Returns(DateTime.UtcNow); var settingsManager = new Mock <ISettingsService>(); var farmBuilder = new Mock <IFarmBuilder>(); var clientHandler = new Mock <IClientHandler>(); using (var context = NewContext) { var stateManager = new FORFarm.Application.Farm.StateService(context, dateTime.Object, settingsManager.Object, farmBuilder.Object, clientHandler.Object); await stateManager.Start(); } using (var context = NewContext) { var stateManager = new FORFarm.Application.Farm.StateService(context, dateTime.Object, settingsManager.Object, farmBuilder.Object, clientHandler.Object); await stateManager.Stop(); } var state = await NewContext.FarmStates.FindAsync(1); state.Running.Should().BeFalse(); }
public async void Start_CanStart_LauncherRunning() { var now = DateTime.UtcNow; var dateTime = new Mock <IDateTime>(); dateTime.Setup(d => d.UtcNow).Returns(now); var settingsManager = new Mock <ISettingsService>(); settingsManager.Setup(s => s.AreSettingsReady()).ReturnsAsync(true); using (var context = NewContext) { var settings = Clone(ValidSettings); settings.ID = 1; context.Update(settings); await context.SaveChangesAsync(); } var launcher = new Mock <ILauncher>(); launcher.Setup(l => l.Hostname).Returns(ValidSettings.Hostname); launcher.Setup(l => l.SocketAddress).Returns(SocketAddress); var farm = new FarmSetup(new List <Account> { new Account() }, new List <Account>()); var farmBuilder = new Mock <IFarmBuilder>(); farmBuilder.Setup(f => f.BuildFarmSetup()).ReturnsAsync(farm); var clientHandler = new Mock <IClientHandler>(); clientHandler.Setup(c => c.GetLaunchers(It.IsAny <string>())).ReturnsAsync(new List <ILauncher> { launcher.Object }); using (var context = NewContext) { var stateManager = new FORFarm.Application.Farm.StateService(context, dateTime.Object, settingsManager.Object, farmBuilder.Object, clientHandler.Object); await stateManager.Start(); } var state = await NewContext.FarmStates.FindAsync(1); settingsManager.Verify(s => s.ActivateFarmSettings()); state.Running.Should().BeTrue(); state.Start.Should().Be(now); state.SocketAddress.Should().Be(SocketAddress); }