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))); }); }
/// <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); }
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; }
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; }
public static async Task DeleteTestGame(MixerConnection connection, MixPlayGameModel game) { Assert.IsTrue(await connection.MixPlay.DeleteMixPlayGame(game)); }
/// <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)); }
/// <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))); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }