public async void CanGetCompetitions()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("GetCompetitions").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    Competition testCompetition = CreateCompetition();

                    RegisteredCompetitor testRegisteredCompetitor = new RegisteredCompetitor {
                        CompetitionID = 2, ParticipantID = 2
                    };
                    List <RegisteredCompetitor> listRC = new List <RegisteredCompetitor>();
                    listRC.Add(testRegisteredCompetitor);
                    Competition testCompetition2 = new Competition()
                    {
                        ID = 2, CompType = CompType.Classic, Level = Level.Novice, RegisteredCompetitors = listRC
                    };

                    CompetitionManagementService competitionService = new CompetitionManagementService(context);

                    await competitionService.CreateCompetition(testCompetition);

                    await competitionService.CreateCompetition(testCompetition2);

                    IEnumerable <Competition> expected = new List <Competition> {
                        testCompetition, testCompetition2
                    };
                    IEnumerable <Competition> actual = await competitionService.GetCompetitions();

                    Assert.Equal(expected, actual);
                }
            }
            public async void CanListCompetitions()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("ListCompetitions").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    RegisteredCompetitorManagementService registeredCompetitorService = new RegisteredCompetitorManagementService(context);

                    CompetitionManagementService competitionManagementService = new CompetitionManagementService(context);

                    Competition testCompetition = new Competition()
                    {
                        ID = 1, CompType = CompType.Classic, Level = Level.Novice
                    };
                    Competition testCompetition2 = new Competition()
                    {
                        ID = 2, CompType = CompType.JackAndJill, Level = Level.Advanced
                    };

                    await competitionManagementService.CreateCompetition(testCompetition);

                    await competitionManagementService.CreateCompetition(testCompetition2);

                    IEnumerable <Competition> expected = new List <Competition> {
                        testCompetition, testCompetition2
                    };
                    IEnumerable <Competition> actual = await registeredCompetitorService.ListCompetitions();

                    Assert.Equal(expected, actual);
                }
            }
            public async void CanSearchRegisteredCompetitor()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("SearchRegisteredCompetitor").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    Competition testCompetition = new Competition()
                    {
                        ID = 1, CompType = CompType.Classic, Level = Level.Novice
                    };
                    Competition testCompetition2 = new Competition()
                    {
                        ID = 2, CompType = CompType.JackAndJill, Level = Level.Advanced
                    };

                    RegisteredCompetitor testRegisteredCompetitor = new RegisteredCompetitor {
                        ParticipantID = 1, CompetitionID = 1, Role = Role.Lead, Placement = Placement.Position2, BibNumber = 101, ChiefJudgeScore = 8, JudgeOneScore = 8, JudgeTwoScore = 8, JudgeThreeScore = 8, JudgeFourScore = 8, JudgeFiveScore = 8, JudgeSixScore = 8, Competition = testCompetition
                    };

                    RegisteredCompetitor testRegisteredCompetitor1 = new RegisteredCompetitor {
                        ParticipantID = 2, CompetitionID = 1, Role = Role.Lead, Placement = Placement.Position2, BibNumber = 101, ChiefJudgeScore = 8, JudgeOneScore = 8, JudgeTwoScore = 8, JudgeThreeScore = 8, JudgeFourScore = 8, JudgeFiveScore = 8, JudgeSixScore = 8, Competition = testCompetition
                    };

                    RegisteredCompetitor testRegisteredCompetitor2 = new RegisteredCompetitor {
                        ParticipantID = 3, CompetitionID = 2, Role = Role.Lead, Placement = Placement.Position2, BibNumber = 101, ChiefJudgeScore = 8, JudgeOneScore = 8, JudgeTwoScore = 8, JudgeThreeScore = 8, JudgeFourScore = 8, JudgeFiveScore = 8, JudgeSixScore = 8, Competition = testCompetition2
                    };

                    RegisteredCompetitorManagementService registeredCompetitorService = new RegisteredCompetitorManagementService(context);

                    CompetitionManagementService competitionService = new CompetitionManagementService(context);
                    await competitionService.CreateCompetition(testCompetition);

                    await competitionService.CreateCompetition(testCompetition2);


                    await registeredCompetitorService.CreateRegisteredCompetitor(testRegisteredCompetitor);

                    await registeredCompetitorService.CreateRegisteredCompetitor(testRegisteredCompetitor1);

                    await registeredCompetitorService.CreateRegisteredCompetitor(testRegisteredCompetitor2);


                    IEnumerable <RegisteredCompetitor> expected = new List <RegisteredCompetitor> {
                        testRegisteredCompetitor, testRegisteredCompetitor1
                    };
                    IEnumerable <RegisteredCompetitor> actual = await registeredCompetitorService.SearchRegisteredCompetitor("class");

                    Assert.Equal(expected, actual);
                }
            }
            public async void CanCreateCompetition()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("CreateCompetition").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    Competition testCompetition = CreateCompetition();

                    CompetitionManagementService competitionService = new CompetitionManagementService(context);

                    await competitionService.CreateCompetition(testCompetition);

                    var result = context.Competitions.FirstOrDefault(a => a.ID == testCompetition.ID);

                    Assert.Equal(testCompetition, result);
                }
            }
            public async void CanGetRegisteredCompetitors()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("GetRegisteredCompetitors2").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    Competition testCompetition = CreateCompetition();

                    CompetitionManagementService competitionService = new CompetitionManagementService(context);

                    await competitionService.CreateCompetition(testCompetition);

                    IEnumerable <RegisteredCompetitor> expected = testCompetition.RegisteredCompetitors;
                    IEnumerable <RegisteredCompetitor> actual   = await competitionService.GetRegisteredCompetitors(testCompetition.ID);

                    Assert.Equal(expected, actual);
                }
            }
            public async void CanShowCompetition()
            {
                DbContextOptions <ClientSideDanceFellowsDbContext> options = new DbContextOptionsBuilder <ClientSideDanceFellowsDbContext>().UseInMemoryDatabase("ShowCompetition").Options;

                using (ClientSideDanceFellowsDbContext context = new ClientSideDanceFellowsDbContext(options))
                {
                    RegisteredCompetitor testRegisteredCompetitor = CreateRegisteredCompetitor();

                    RegisteredCompetitorManagementService registeredCompetitorService = new RegisteredCompetitorManagementService(context);

                    CompetitionManagementService competitionManagementService = new CompetitionManagementService(context);

                    await competitionManagementService.CreateCompetition(testRegisteredCompetitor.Competition);

                    Competition expected = testRegisteredCompetitor.Competition;

                    Competition actual = await registeredCompetitorService.ShowCompetition(testRegisteredCompetitor.Competition.ID);

                    Assert.Equal(expected, actual);
                }
            }