public void GetAllMembersAsynchronouslyFromDbResultsMatchWithTestData()
        {
            // Arrange
            DataLayer dataLayer = new DataLayer();

            // Act
            // Create task that goes and does the I/O for us.
            Task<List<GangMember>> actualMembersTask = dataLayer.GetAllGangMembersAsync();

            // Arrange - This is arranging but in order to show the asyc behaviour, it has been implemented after the ACT
            // In the mean time we can instantiate our test data.
            List<GangMember> expectedMembers = new List<GangMember>();
            expectedMembers.Add(new GangMember { MemberID = 1, MemberName = "Gentleman Jack", MemberRank = "Bootlegger" });
            expectedMembers.Add(new GangMember { MemberID = 2, MemberName = "Brainy Somerville", MemberRank = "Head Honcho" });
            expectedMembers.Add(new GangMember { MemberID = 3, MemberName = "Bobby Tweaks", MemberRank = "Pickpocket" });
            expectedMembers.Add(new GangMember { MemberID = 4, MemberName = "Toothless Jim", MemberRank = "Brawler" });
            expectedMembers.Add(new GangMember { MemberID = 5, MemberName = "Whispering Sam", MemberRank = "Hitman" });

            // Act
            // With that instantiated we can wait for our results
            List<GangMember> actualMembers = actualMembersTask.Result;

            // Assert
            int incrementMember = 0;
            // Now we loop through the test data and check it against our results
            foreach (var gangMember in expectedMembers)
            {
                Assert.AreEqual(gangMember.MemberID, actualMembers[incrementMember].MemberID);
                Assert.AreEqual(gangMember.MemberName, actualMembers[incrementMember].MemberName);
                Assert.AreEqual(gangMember.MemberRank, actualMembers[incrementMember].MemberRank);
                incrementMember++;
            }
        }