public void CanViewOtherPlayersPackages()
        {
            SubmitCustomSpecialistResponse response    = submitCustomSpecialist("MyCustomSpecialist");
            SubmitCustomSpecialistResponse responseTwo = submitCustomSpecialist("SecondCustomSpec");

            CreateSpecialistPackageResponse playerOnePackage = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName   = "PlayerOnePackage",
                    SpecialistIds = { response.SpecialistConfigurationId },
                }
            });

            authHelper.loginToAccount("userTwo");

            CreateSpecialistPackageResponse playerTwoPackage = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName   = "PlayerTwoPackage",
                    SpecialistIds = { responseTwo.SpecialistConfigurationId },
                }
            });

            GetSpecialistPackagesResponse specialistPackagesResponse = client.GetSpecialistPackages(new GetSpecialistPackagesRequest());

            Assert.True(specialistPackagesResponse.SpecialistPackages.Count == 2);
            Assert.True(specialistPackagesResponse.SpecialistPackages.Count(it => it.Id == playerTwoPackage.SpecialistPackageId) == 1);
            Assert.True(specialistPackagesResponse.SpecialistPackages.Count(it => it.Id == playerOnePackage.SpecialistPackageId) == 1);
        }
        public void CanAddMultipleSpecialistsToAPackage()
        {
            SubmitCustomSpecialistResponse response    = submitCustomSpecialist("MyCustomSpecialist");
            SubmitCustomSpecialistResponse responseTwo = submitCustomSpecialist("SecondCustomSpec");

            CreateSpecialistPackageResponse packageResponse = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName   = "myPackage",
                    SpecialistIds = { response.SpecialistConfigurationId, responseTwo.SpecialistConfigurationId },
                }
            });

            Assert.IsTrue(packageResponse.Status.IsSuccess);
            Assert.NotNull(packageResponse.SpecialistPackageId);

            GetPlayerSpecialistPackagesResponse playerPackages = client.GetPlayerSpecialistPackages(new GetPlayerSpecialistPackagesRequest()
            {
                PlayerId = authHelper.getAccountId("userOne")
            });

            Assert.True(playerPackages.PlayerPackages.Count == 1);
            Assert.True(playerPackages.PlayerPackages[0].Creator.Username == "userOne");
            Assert.True(playerPackages.PlayerPackages[0].SpecialistIds.Count == 2);
            Assert.True(playerPackages.PlayerPackages[0].SpecialistIds.Count(it => it == response.SpecialistConfigurationId) == 1);
            Assert.True(playerPackages.PlayerPackages[0].SpecialistIds.Count(it => it == responseTwo.SpecialistConfigurationId) == 1);
        }
        public void CanAddASpecialistPackageToAPackage()
        {
            SubmitCustomSpecialistResponse response    = submitCustomSpecialist("MyCustomSpecialist");
            SubmitCustomSpecialistResponse responseTwo = submitCustomSpecialist("SecondCustomSpec");

            CreateSpecialistPackageResponse packageResponse = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName   = "myPackage",
                    SpecialistIds = { response.SpecialistConfigurationId },
                }
            });

            CreateSpecialistPackageResponse packageInPackageResponse = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName          = "myPackage In A Package",
                    SpecialistIds        = { responseTwo.SpecialistConfigurationId },
                    SpecialistPackageIds = { packageResponse.SpecialistPackageId }
                }
            });

            GetPlayerSpecialistPackagesResponse playerPackages = client.GetPlayerSpecialistPackages(new GetPlayerSpecialistPackagesRequest()
            {
                PlayerId = authHelper.getAccountId("userOne")
            });

            Assert.True(playerPackages.PlayerPackages.Count == 2);
            Assert.True(playerPackages.PlayerPackages.Count(it => it.Id == packageInPackageResponse.SpecialistPackageId) == 1);
            Assert.True(playerPackages.PlayerPackages.Count(it => it.Id == packageResponse.SpecialistPackageId) == 1);
        }
        public void CanCreateASpecialistPackage()
        {
            SubmitCustomSpecialistResponse response = submitCustomSpecialist("MyCustomSpecialist");

            CreateSpecialistPackageResponse packageResponse = client.CreateSpecialistPackage(
                new CreateSpecialistPackageRequest()
            {
                SpecialistPackage = new SpecialistPackage()
                {
                    PackageName   = "myPackage",
                    SpecialistIds = { response.SpecialistConfigurationId },
                }
            });

            Assert.IsTrue(packageResponse.Status.IsSuccess);
            Assert.NotNull(packageResponse.SpecialistPackageId);
        }