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);
        }