public async void Handle_RegisterMule_Existing() { var stateManager = new Mock <IStateService>(); stateManager.Setup(s => s.IsRunning()).ReturnsAsync(true); var farmManager = new Mock <IFarmService>(); var position = Data.Position; farmManager.Setup(f => f.GetMulePosition()).ReturnsAsync(position); var logger = new Mock <ILogger <RegisterMuleHandler> >(); var now = DateTime.UtcNow; var dateTime = new Mock <IDateTime>(); dateTime.Setup(d => d.UtcNow).Returns(now); var account = BogusData.ValidMuleAccounts.Generate(); var startTime = now.Subtract(TimeSpan.FromSeconds(30)); var mule = new Mule { Account = account, StartTime = startTime, LastUpdate = startTime }; using (var context = NewContext) { context.Mules.Add(mule); await context.SaveChangesAsync(); } var command = new FORFarm.Application.Mules.Commands.RegisterMule.RegisterMule() { Tag = Guid.NewGuid(), Username = account.Username, DisplayName = "DarudeSandstorm" }; var registerMuleHandler = new RegisterMuleHandler(farmManager.Object, NewContext, logger.Object, dateTime.Object, stateManager.Object); var result = await registerMuleHandler.Handle(command, CancellationToken.None); result.Should().NotBeNull(); result.Command.Should().Be(Command.Continue); var uMule = await NewContext.Mules .Include(m => m.Position) .FirstOrDefaultAsync(m => m.ID == mule.ID); uMule.Position.Should().BeEquivalentTo(position); uMule.DisplayName.Should().Be(command.DisplayName); uMule.Tag.Should().Be(command.Tag); uMule.LastUpdate.Should().Be(now); }
public async void Handle_RegisterMule_NotRunning() { var stateManager = new Mock <IStateService>(); stateManager.Setup(s => s.IsRunning()).ReturnsAsync(false); var farmManager = new Mock <IFarmService>(); var logger = new Mock <ILogger <RegisterMuleHandler> >(); var dateTime = new Mock <IDateTime>(); var registerMuleHandler = new RegisterMuleHandler(farmManager.Object, NewContext, logger.Object, dateTime.Object, stateManager.Object); var result = await registerMuleHandler.Handle(new FORFarm.Application.Mules.Commands.RegisterMule.RegisterMule(), CancellationToken.None); result.Should().NotBeNull(); result.Command.Should().Be(Command.Terminate); result.Position.Should().BeNull(); }