public void Generate_No_Earnings_When_Fm36_Only_Has_Invalid_Contracts()
        {
            var cmd = new LearnerBuilder()
                      .BuildLearnerCommand();

            // Arrange
            cmd.Learner.PriceEpisodes.First().PriceEpisodeValues.PriceEpisodeContractType = "none";

            // Act
            var earningsEvents = sut.Build(cmd);

            // Assert
            earningsEvents.Should().BeEmpty();
        }
        public void Generate_Valid_Earnings_When_Ignoring_Invalid_Contracts_In_Fm36()
        {
            var cmd = new LearnerBuilder()
                      .WithMultipleDeliveries()
                      .BuildLearnerCommand();

            // Arrange
            cmd.Learner.PriceEpisodes.First().PriceEpisodeValues.PriceEpisodeContractType = null;

            // Act
            var earningsEvents = sut.Build(cmd);

            // Assert
            var expectedEarnings = cmd.Learner.PriceEpisodes.Skip(1).Select(x => new ApprenticeshipContractType1EarningEvent
            {
                StartDate = x.PriceEpisodeValues.EpisodeStartDate.GetValueOrDefault()
            });

            earningsEvents.Should().BeEquivalentTo(expectedEarnings);
        }