コード例 #1
0
        public void CreateGetUpdateDeleteGame()
        {
            TestWrapper(async (MixerConnection connection) =>
            {
                ChannelModel channel = await ChannelsServiceUnitTests.GetChannel(connection);

                MixPlayGameListingModel gameListing = await MixPlayServiceUnitTests.CreateTestGame(connection, channel);

                IEnumerable<MixPlayGameListingModel> games = await connection.MixPlay.GetOwnedMixPlayGames(channel);

                Assert.IsNotNull(games);
                Assert.IsTrue(games.Count() > 0);
                Assert.IsTrue(games.Any(g => g.id.Equals(gameListing.id)));

                string gameName = gameListing.name = "Test Game";
                MixPlayGameModel game = await connection.MixPlay.UpdateMixPlayGame(gameListing);

                Assert.IsNotNull(game);
                Assert.IsTrue(game.id > 0);
                Assert.AreEqual(game.name, gameName);

                await MixPlayServiceUnitTests.DeleteTestGame(connection, game);

                games = await connection.MixPlay.GetOwnedMixPlayGames(channel);

                Assert.IsNotNull(games);
                Assert.IsFalse(games.Any(g => g.id.Equals(game.id)));
            });
        }
コード例 #2
0
        /// <summary>
        /// Creates a MixPlay game.
        /// </summary>
        /// <param name="connection">The Mixer connection to use</param>
        /// <param name="channel">The owning channel</param>
        /// <param name="user">The owning user</param>
        /// <param name="gameName">The name of the game</param>
        /// <param name="initialScene">The initial scene</param>
        /// <returns>The created MixPlay game</returns>
        public static async Task <MixPlayGameListingModel> CreateMixPlay2Game(MixerConnection connection, ChannelModel channel, UserModel user, string gameName, MixPlaySceneModel initialScene)
        {
            MixPlayGameModel game = new MixPlayGameModel()
            {
                name    = gameName,
                ownerId = user.id,
            };

            game = await connection.MixPlay.CreateMixPlayGame(game);

            game.controlVersion = "2.0";
            game = await connection.MixPlay.UpdateMixPlayGame(game);

            IEnumerable <MixPlayGameListingModel> gameListings = await connection.MixPlay.GetOwnedMixPlayGames(channel);

            MixPlayGameListingModel gameListing = gameListings.FirstOrDefault(gl => gl.id.Equals(game.id));

            MixPlayGameVersionModel version = gameListing.versions.First();

            version.controls.scenes.Add(initialScene);
            version.controlVersion = "2.0";
            version = await connection.MixPlay.UpdateMixPlayGameVersion(version);

            gameListings = await connection.MixPlay.GetOwnedMixPlayGames(channel);

            gameListing = gameListings.FirstOrDefault(gl => gl.id.Equals(game.id));

            return(gameListing);
        }
コード例 #3
0
        public static async Task<MixPlayGameListingModel> CreateTestGame(MixerConnection connection, ChannelModel channel)
        {
            UserModel user = await UsersServiceUnitTests.GetCurrentUser(connection);

            IEnumerable<MixPlayGameListingModel> gameListings = await connection.MixPlay.GetOwnedMixPlayGames(channel);

            MixPlayGameListingModel previousTestGame = gameListings.FirstOrDefault(g => g.name.Equals(MixPlayServiceUnitTests.GameName));
            if (previousTestGame != null)
            {
                await MixPlayServiceUnitTests.DeleteTestGame(connection, previousTestGame);
            }

            MixPlayGameModel game = new MixPlayGameModel()
            {
                name = MixPlayServiceUnitTests.GameName,
                ownerId = user.id,             
            };
            game = await connection.MixPlay.CreateMixPlayGame(game);

            Assert.IsNotNull(game);
            Assert.IsTrue(game.id > 0);

            game.controlVersion = "2.0";
            game = await connection.MixPlay.UpdateMixPlayGame(game);

            Assert.IsNotNull(game);
            Assert.IsTrue(game.id > 0);

            gameListings = await connection.MixPlay.GetOwnedMixPlayGames(channel);

            Assert.IsNotNull(gameListings);
            Assert.IsTrue(gameListings.Count() > 0);

            MixPlayGameListingModel gameListing = gameListings.FirstOrDefault(gl => gl.id.Equals(game.id));
            Assert.IsNotNull(gameListing);

            MixPlayGameVersionModel version = gameListing.versions.First();
            MixPlaySceneModel defaultScene = new MixPlaySceneModel()
            {
                sceneID = "default",
            };

            defaultScene.buttons.Add(MixPlayClientUnitTests.CreateTestButton());
            defaultScene.joysticks.Add(MixPlayClientUnitTests.CreateTestJoystick());

            version.controls.scenes.Add(defaultScene);
            version.controlVersion = "2.0";
            version = await connection.MixPlay.UpdateMixPlayGameVersion(version);

            gameListings = await connection.MixPlay.GetOwnedMixPlayGames(channel);

            Assert.IsNotNull(gameListings);
            Assert.IsTrue(gameListings.Count() > 0);

            gameListing = gameListings.FirstOrDefault(gl => gl.id.Equals(game.id));
            Assert.IsNotNull(gameListing);

            return gameListing;
        }
コード例 #4
0
        private MixPlayClient(ChannelModel channel, MixPlayGameModel game, MixPlayGameVersionModel version, string shareCode, OAuthTokenModel authToken, IEnumerable <string> connections)
        {
            Validator.ValidateVariable(channel, "channel");
            Validator.ValidateVariable(game, "game");
            Validator.ValidateVariable(version, "version");
            Validator.ValidateVariable(authToken, "authToken");
            Validator.ValidateList(connections, "connections");

            this.Channel     = channel;
            this.Game        = game;
            this.Version     = version;
            this.ShareCode   = shareCode;
            this.connections = connections;

            this.oauthAccessToken = authToken.accessToken;
        }
コード例 #5
0
 public static async Task DeleteTestGame(MixerConnection connection, MixPlayGameModel game)
 {
     Assert.IsTrue(await connection.MixPlay.DeleteMixPlayGame(game));
 }
コード例 #6
0
 /// <summary>
 /// Gets the specified MixPlay game.
 /// </summary>
 /// <param name="game">The MixPlay game to get</param>
 /// <returns></returns>
 public async Task <MixPlayGameModel> GetMixPlayGame(MixPlayGameModel game)
 {
     Validator.ValidateVariable(game, "game");
     return(await this.GetMixPlayGame(game.id));
 }
コード例 #7
0
 /// <summary>
 /// Creates the specified MixPlay game.
 /// </summary>
 /// <param name="game">The MixPlay game to create</param>
 /// <returns>The created MixPlay game</returns>
 public async Task <MixPlayGameModel> CreateMixPlayGame(MixPlayGameModel game)
 {
     Validator.ValidateVariable(game, "game");
     return(await this.PostAsync <MixPlayGameModel>("interactive/games", this.CreateContentFromObject(game)));
 }
コード例 #8
0
 /// <summary>
 /// Gets the MixPlay game versions for the specified game.
 /// </summary>
 /// <param name="game">The MixPlay game to get versions for</param>
 /// <param name="maxResults">The maximum number of results. Will be either that amount or slightly more</param>
 /// <returns>The MixPlay game versions</returns>
 public async Task <IEnumerable <MixPlayGameVersionModel> > GetMixPlayGameVersions(MixPlayGameModel game, uint maxResults = uint.MaxValue)
 {
     Validator.ValidateVariable(game, "game");
     return(await this.GetPagedNumberAsync <MixPlayGameVersionModel>("interactive/games/" + game.id + "/versions", maxResults));
 }
コード例 #9
0
 /// <summary>
 /// Deletes the specified MixPlay game.
 /// </summary>
 /// <param name="game">The MixPlay game to delete</param>
 /// <returns>Whether the operation succeeded</returns>
 public async Task <bool> DeleteMixPlayGame(MixPlayGameModel game)
 {
     Validator.ValidateVariable(game, "game");
     return(await this.DeleteAsync("interactive/games/" + game.id));
 }
コード例 #10
0
        /// <summary>
        /// Creates an MixPlay client using the specified connection to the specified channel and game.
        /// </summary>
        /// <param name="connection">The connection to use</param>
        /// <param name="channel">The channel to connect to</param>
        /// <param name="game">The game to use</param>
        /// <param name="version">The version of the game to use</param>
        /// <param name="shareCode">The share code used to connect to a game shared with you</param>
        /// <returns>The MixPlay client for the specified channel and game</returns>
        public static async Task <MixPlayClient> CreateFromChannel(MixerConnection connection, ChannelModel channel, MixPlayGameModel game, MixPlayGameVersionModel version, string shareCode)
        {
            Validator.ValidateVariable(connection, "connection");
            Validator.ValidateVariable(channel, "channel");
            Validator.ValidateVariable(game, "game");
            Validator.ValidateVariable(version, "version");

            OAuthTokenModel authToken = await connection.GetOAuthToken();

            IEnumerable <string> connections = await connection.MixPlay.GetMixPlayHosts();

            return(new MixPlayClient(channel, game, version, shareCode, authToken, connections));
        }
コード例 #11
0
        /// <summary>
        /// Creates an MixPlay client using the specified connection to the specified channel and game.
        /// </summary>
        /// <param name="connection">The connection to use</param>
        /// <param name="channel">The channel to connect to</param>
        /// <param name="game">The game to use</param>
        /// <param name="version">The version of the game to use</param>
        /// <returns>The MixPlay client for the specified channel and game</returns>
        public static async Task <MixPlayClient> CreateFromChannel(MixerConnection connection, ChannelModel channel, MixPlayGameModel game, MixPlayGameVersionModel version)
        {
            Validator.ValidateVariable(connection, "connection");
            Validator.ValidateVariable(channel, "channel");
            Validator.ValidateVariable(game, "game");
            Validator.ValidateVariable(version, "version");

            return(await MixPlayClient.CreateFromChannel(connection, channel, game, version, null));
        }