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;
        }
        /// <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);
        }