public async Task GeneratePairings_RequiresPositiveGroupId(int groupId)
        {
            var service    = new Mock <IPairingService>(MockBehavior.Strict);
            var controller = new PairingsController(service.Object, Mapper.Instance);

            var result = await controller.GeneratePairings(groupId);

            Assert.IsTrue(result is BadRequestObjectResult);
        }
        public async Task GeneratePairings_SuccessfullyCreatesPairingsLoop()
        {
            var pairings = new List <Pairing>
            {
                new Pairing {
                    Id = 1, SantaId = 1, RecipientId = 2
                },
                new Pairing {
                    Id = 2, SantaId = 2, RecipientId = 3
                },
                new Pairing {
                    Id = 3, SantaId = 3, RecipientId = 1
                }
            };

            var service = new Mock <IPairingService>();

            service.Setup(x => x.GeneratePairings(It.IsAny <int>()))
            .ReturnsAsync(pairings)
            .Verifiable();

            var controller = new PairingsController(service.Object, Mapper.Instance);
            var result     = await controller.GeneratePairings(1) as CreatedResult;

            var resultValue = result?.Value as List <PairingViewModel>;

            Assert.IsNotNull(resultValue);
            Assert.AreEqual(3, resultValue.Count);
            Assert.AreEqual(1, resultValue[0].Id);
            Assert.AreEqual(1, resultValue[0].SantaId);
            Assert.AreEqual(2, resultValue[0].RecipientId);

            Assert.AreEqual(3, resultValue[2].Id);
            Assert.AreEqual(3, resultValue[2].SantaId);
            Assert.AreEqual(1, resultValue[2].RecipientId);
            service.VerifyAll();
        }