public void GenerateGiftPairs_FamilyTooLargeProvided_ErrorReturned()
        {
            // Arange
            List <Family> invalidFamilyPayload = new List <Family>
            {
                new Family
                {
                    Name    = "family1",
                    Members = new List <FamilyMember>
                    {
                        new FamilyMember
                        {
                            Name = "member1"
                        },
                        new FamilyMember
                        {
                            Name = "member2"
                        }
                    }
                },
                new Family
                {
                    Name    = "family2",
                    Members = new List <FamilyMember>
                    {
                        new FamilyMember
                        {
                            Name = "member4"
                        },
                        new FamilyMember
                        {
                            Name = "member5"
                        },
                        new FamilyMember
                        {
                            Name = "member6"
                        }
                    }
                }
            };
            var expectedResult = new SecretSantaResult
            {
                Message = "A single family's members cannot be more than half the total members"
            };

            // Act
            var result = GetResultValue <BadRequestObjectResult>(secretSantaController.GenerateGiftPairs(invalidFamilyPayload));

            // Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Value.ToString(), Is.EqualTo(expectedResult.ToString()));
        }
        public void GenerateGiftPairs_DuplicateFamilyNamesFound_ErrorReturned()
        {
            // Arange
            List <Family> invalidFamilyPayload = new List <Family>
            {
                new Family
                {
                    Name    = "family1",
                    Members = new List <FamilyMember>
                    {
                        new FamilyMember
                        {
                            Name = "member1"
                        },
                        new FamilyMember
                        {
                            Name = "member2"
                        }
                    }
                },
                new Family
                {
                    Name    = "family1",
                    Members = new List <FamilyMember>
                    {
                        new FamilyMember
                        {
                            Name = "member1"
                        },
                        new FamilyMember
                        {
                            Name = "member2"
                        }
                    }
                }
            };
            var expectedResult = new SecretSantaResult
            {
                Message = "Duplicate family names found"
            };

            // Act
            var result = GetResultValue <BadRequestObjectResult>(secretSantaController.GenerateGiftPairs(invalidFamilyPayload));

            // Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Value.ToString(), Is.EqualTo(expectedResult.ToString()));
        }