public async Task FlightMatrixCommandInteractor_SaveFlightMatrixForContestAsync_HappyPath() { var flightMatrix = new FlightMatrix { ContestId = "sdfasdf" }; flightMatrix.Matrix.Add(new FlightMatrixRound { RoundOrdinal = 0, PilotSlots = new List <FlightMatrixPilotSlot> { new FlightMatrixPilotSlot { PilotId = "sadfxcvcxasdf", FlightGroup = FlightGroup.A } } }); mockFlightMatrixRepository.Setup(f => f.CreateAsync(It.IsAny <FlightMatrix>())).Returns <FlightMatrix>(x => Task.FromResult(new Result <FlightMatrix>(flightMatrix))); var flightMatrixCmdInteractor = new FlightMatrixStorageCmdInteractor(mockFlightMatrixRepository.Object, mockLogger.Object); var result = await flightMatrixCmdInteractor.SaveFlightMatrixForContestAsync(flightMatrix); Assert.IsFalse(result.IsFaulted); Assert.IsNotNull(result.Value); }
public async Task FlightMatrixCommandInteractor_SaveFlightMatrixForContestAsync_NullParameters() { var flightMatrixCmdInteractor = new FlightMatrixStorageCmdInteractor(mockFlightMatrixRepository.Object, mockLogger.Object); var result = await flightMatrixCmdInteractor.SaveFlightMatrixForContestAsync(null); Assert.IsTrue(result.IsFaulted); Assert.IsNull(result.Value); }
public async Task FlightMatrixCommandInteractor_SaveFlightMatrixForContestAsync_NoPilotsInMatrix() { var flightMatrix = new FlightMatrix { ContestId = "234234" }; var flightMatrixCmdInteractor = new FlightMatrixStorageCmdInteractor(mockFlightMatrixRepository.Object, mockLogger.Object); var result = await flightMatrixCmdInteractor.SaveFlightMatrixForContestAsync(flightMatrix); Assert.IsTrue(result.IsFaulted); Assert.IsNull(result.Value); }
/// <summary> /// Initializes a new instance of the <see cref="F3KContestEngine" /> class. /// </summary> /// <param name="taskQueryInteractor">The task query interactor.</param> /// <param name="contestStorageCmdIntr">The contest storage command intr.</param> /// <param name="scoringStorageCmdIntr">The scoring storage command intr.</param> /// <param name="logger">The logger.</param> public F3KContestEngine(TaskQueryInteractor taskQueryInteractor, ContestStorageCmdInteractor contestStorageCmdIntr, ScoringStorageCmdInteractor scoringStorageCmdIntr, ScoringQueryInteractor scoringQueryInteractor, ScoringContestScoreAggInteractor scoringContestScoreAggIntr, FlightMatrixStorageCmdInteractor flightMatrixStorageCmdIntr, FlightMatrixQueryInteractor flightMatrixQueryIntr, PilotQueryInteractor pilotQueryInteractor, ISortingAlgo sortingAlgo, IFlyOffSelectionAlgo flyOffAlgo, ILoggingService logger) : base(contestStorageCmdIntr, scoringStorageCmdIntr) { this.taskQueryInteractor = taskQueryInteractor ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(taskQueryInteractor)} cannot be null"); this.scoringQueryInteractor = scoringQueryInteractor ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(scoringQueryInteractor)} cannot be null"); this.scoringContestScoreAggIntr = scoringContestScoreAggIntr ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(scoringContestScoreAggIntr)} cannot be null"); this.flightMatrixQueryIntr = flightMatrixQueryIntr ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(flightMatrixQueryIntr)} cannot be null"); this.flightMatrixStorageCmdIntr = flightMatrixStorageCmdIntr ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(flightMatrixStorageCmdIntr)} cannot be null"); this.pilotQueryInteractor = pilotQueryInteractor ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(pilotQueryInteractor)} cannot be null"); this.sortingAlgo = sortingAlgo ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(sortingAlgo)} cannot be null"); this.flyOffPilotPicker = flyOffAlgo ?? throw new ArgumentException($"{nameof(F3KContestEngine)}:Ctor - {nameof(flyOffAlgo)} cannot be null"); this.logger = logger ?? throw new ArgumentNullException($"{nameof(F3KContestEngine)}:Ctor - {nameof(logger)} cannot be null"); }
/// <summary> /// Initializes a new instance of the <see cref="FlightMatrixController"/> class. /// </summary> /// <param name="flightMatrixStorageCmdInteractor">The flight matrix storage command interactor.</param> /// <param name="flightMatrixQueryInteractor">The flight matrix query interactor.</param> public FlightMatrixController(FlightMatrixStorageCmdInteractor flightMatrixStorageCmdInteractor, FlightMatrixQueryInteractor flightMatrixQueryInteractor) { this.flightMatrixStorageCmdInteractor = flightMatrixStorageCmdInteractor; this.flightMatrixQueryInteractor = flightMatrixQueryInteractor; }