public async Task GetRecommendedSlot_WhenOneAppropriateAvailableSlot_ReturnSlot() { var startTime = DateTime.Now; var duration = 9; var airplane = new Airplane { AirplaneId = It.IsAny<int>(), Type = new AirplaneType { Name = "777", Size = 5 } }; var emptySlot = new ScoredSlot { IsEmpty = true, Size = 1, SlotId = It.IsAny<int>(), Score = 1 }; var slots = new List<Slot> { emptySlot }; _mockSlotRepository.Setup(r => r.GetAvailableSlots()).ReturnsAsync(slots); _mockScoreProvider.Setup(s => s.ScoreSlot(emptySlot, airplane)).Returns(emptySlot); var sut = new SlotService(_mockScoreProvider.Object, _mockSlotRepository.Object); var result = await sut.GetRecommendedSlot(startTime, duration, airplane); result.Should().Be(emptySlot); }
public void ScoreSlots_WhenSlotIsBestFit_ReturnFive() { var airplane = new Airplane { AirplaneId = It.IsAny <int>(), Type = new AirplaneType { Name = "777", Size = 7 } }; var slot = new Slot { IsEmpty = true, Size = 7, SlotId = It.IsAny <int>() }; var expected = new ScoredSlot { Score = 5, SlotId = slot.SlotId, Size = slot.Size, IsEmpty = true }; var sut = new SlotSizeScoreProvider(); var result = sut.ScoreSlot(slot, airplane); using (new AssertionScope()) { result.Should().BeOfType(typeof(ScoredSlot)); result.Score.Should().Be(expected.Score); } }