public async Task PilotQueryInteractor_GetAllPilotsAsync_RepositoryFailure_ReturnsNull()
        {
            mockPilotRepository.Setup(p => p.ReadAsync()).Returns(Task.FromResult(new Result <IEnumerable <Pilot> >(null)));

            var pilotQueryInteractor = new PilotQueryInteractor(mockPilotRepository.Object, mockLogger.Object);
            var result = await pilotQueryInteractor.GetAllPilotsAsync();

            Assert.IsTrue(result.IsFaulted);
            Assert.IsNull(result.Value);
        }
        public async Task PilotQueryInteractor_GetAllPilotsAsync_RepositoryFailure_Exception()
        {
            var exceptionMessage = "Derp";

            mockPilotRepository.Setup(p => p.ReadAsync()).Throws(new Exception(exceptionMessage));
            var pilotQueryInteractor = new PilotQueryInteractor(mockPilotRepository.Object, mockLogger.Object);

            var result = await pilotQueryInteractor.GetAllPilotsAsync();

            Assert.IsTrue(result.IsFaulted);
            Assert.IsNull(result.Value);
            Assert.IsNotNull(result.Error.Exception);
            Assert.AreEqual(exceptionMessage, result.Error.ErrorMessage);
        }
        public async Task PilotQueryInteractor_GetAllPilotsAsync_HappyPath()
        {
            var id        = "235dsfkjsdfwi";
            var fName     = "Rick";
            var lName     = "R";
            var amaNumber = "23423940";
            var airFrame  = "Snipe 2";

            var pilot  = new Pilot(fName, lName, id, amaNumber, airFrame);
            var pilot2 = new Pilot("Sam", "Snead", "23dsfsdf", "1234", "Gambler");
            var pilots = new List <Pilot> {
                pilot, pilot2
            };

            mockPilotRepository.Setup(c => c.ReadAsync()).Returns(Task.FromResult(new Result <IEnumerable <Pilot> >(pilots)));

            var pilotQueryInteractor = new PilotQueryInteractor(mockPilotRepository.Object, mockLogger.Object);
            var result = await pilotQueryInteractor.GetAllPilotsAsync();

            Assert.IsFalse(result.IsFaulted);
            Assert.IsNotNull(result.Value);
            Assert.AreEqual(2, result.Value.Count());
        }