public async Task GetMonsterByIdAsync_WhenRepositoryHasMonstersAndInvokedWithoutImageData_ShouldReturnMonsterWithoutImageData() { // Setup const string targetGuidStr = "421dc26d-eb34-4be4-b3f5-2f8a80d3754d"; var monsters = GenerateMonsters(new[] { Element.Dark, Element.Fire }); monsters.ElementAt(0).Id = Guid.Parse("2b110876-430b-42eb-bebb-6718b03c6e18"); monsters.ElementAt(1).Id = Guid.Parse(targetGuidStr); Guid?monsterIdUsed = null; _mockMonsterRepository .Setup(repository => repository.GetMonster(It.IsAny <Guid>())) .Callback <Guid>(monsterId => monsterIdUsed = monsterId) .ReturnsAsync(monsters.ElementAt(1)); var expected = monsters.Select(monster => new Monster( monster.AwakenedName, monster.Name, monster.Rating, monster.Element, string.Empty, string.Empty, monster.EarlyRuneList, monster.EarlyRuneValues, monster.LateRuneList, monster.LateRuneValues, monster.StatPriority) { Id = monster.Id, Number = monster.Number }).ElementAt(1); // Execute var actual = await fixture.GetMonsterByIdAsync(Guid.Parse(targetGuidStr)); // Verify _mockMonsterRepository.VerifyAll(); monsterIdUsed.Should().Be(Guid.Parse(targetGuidStr)); actual.Should().BeEquivalentTo(expected); }