public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetGameVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/gamevariants/{null}", uri);
        }
示例#2
0
        public async Task GetGameVariant_InvalidGamertag(string gamertag, string guid)
        {
            var query = new GetGameVariant(gamertag, new Guid(guid));

            await Global.Session.Query(query);

            Assert.Fail("An exception should have been thrown");
        }
示例#3
0
        public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetGameVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual("metadata/h5/metadata/game-variants/", uri);
        }
        public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetGameVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual("metadata/h5/metadata/game-variants/", uri);
        }
        public void GetConstructedUri_NoParamaters_MatchesExpected()
        {
            var query = new GetGameVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual(BaseUri, uri);
        }
示例#6
0
        public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetGameVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/gamevariants/{null}", uri);
        }
示例#7
0
        public async Task GetGameVariant_MissingGameVariantId()
        {
            var query = new GetGameVariant()
                        .ForPlayer("Player");

            await Global.Session.Query(query);

            Assert.Fail("An exception should have been thrown");
        }
示例#8
0
        public async Task GetGameVariant_IsSerializable(string gamertag, string guid)
        {
            var query = new GetGameVariant(gamertag, new Guid(guid))
                        .SkipCache();

            var result = await Global.Session.Query(query);

            SerializationUtility <GameVariant> .AssertRoundTripSerializationIsPossible(result);
        }
        public void GetConstructedUri_ForGameVariantId_MatchesExpected(string guid)
        {
            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"metadata/h5/metadata/game-variants/{guid}", uri);
        }
示例#10
0
        public async Task Query_DoesNotThrow()
        {
            var query = new GetGameVariant();

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
            Assert.AreEqual(_gameVariant, result);
        }
示例#11
0
        public void GetConstructedUri_InGameMode_MatchesExpected(string guid)
        {
            var query = new GetGameVariant()
                        .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/gamevariants/{guid}", uri);
        }
示例#12
0
        public void GetConstructedUri_ForPlayer_MatchesExpected(string gamertag)
        {
            var query = new GetGameVariant()
                        .ForPlayer(gamertag);

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/gamevariants/{null}", uri);
        }
示例#13
0
        public void GetConstructedUri_InGameMode_MatchesExpected(string guid)
        {
            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/gamevariants/{guid}", uri);
        }
示例#14
0
        public void GetConstructedUri_ForPlayer_MatchesExpected(string gamertag)
        {
            var query = new GetGameVariant()
                .ForPlayer(gamertag);

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/gamevariants/{null}", uri);
        }
示例#15
0
        public async Task GetGameVariant_MissingGuid()
        {
            var query = new GetGameVariant()
                        .SkipCache();

            await Global.Session.Query(query);

            Assert.Fail("An exception should have been thrown");
        }
示例#16
0
        public async Task GetGameVariant_DoesNotThrow(string gamertag, string guid)
        {
            var query = new GetGameVariant(gamertag, new Guid(guid))
                        .SkipCache();

            var result = await Global.Session.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
        }
示例#17
0
        public async Task Query_DoesNotThrow(string guid)
        {
            var query = new GetGameVariant(new Guid(guid));

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
            Assert.AreEqual(_gameVariant, result);
        }
示例#18
0
        public void GetConstructedUri_ForGameVariantId_MatchesExpected(string guid)
        {
            var query = new GetGameVariant()
                        .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"metadata/h5/metadata/game-variants/{guid}", uri);
        }
示例#19
0
        public async Task Query_DoesNotThrow()
        {
            var query = new GetGameVariant()
                        .ForGameVariantId(Guid.Empty);

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
            Assert.AreEqual(_gameVariant, result);
        }
示例#20
0
        public void GetConstructedUri_Complex_MatchesExpected(string gamertag, string guid)
        {
            var query = new GetGameVariant()
                        .ForPlayer(gamertag)
                        .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/gamevariants/{guid}", uri);
        }
示例#21
0
        public async Task GetGameVariant_DoesNotThrow(string guid)
        {
            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid))
                .SkipCache();

            var result = await Global.Session.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
        }
示例#22
0
        public void GetConstructedUri_Complex_MatchesExpected(string gamertag, string guid)
        {
            var query = new GetGameVariant()
                .ForPlayer(gamertag)
                .ForGameVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/gamevariants/{guid}", uri);
        }
        public async Task GetGameVariant_IsSerializable(string guid)
        {
            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid))
                .SkipCache();

            var result = await Global.Session.Query(query);

            var serializationUtility = new SerializationUtility<GameVariant>();
            serializationUtility.AssertRoundTripSerializationIsPossible(result);
        }
示例#24
0
        public async Task Query_DoesNotThrow(string gamertag, string guid)
        {
            var query = new GetGameVariant()
                        .ForPlayer(gamertag)
                        .ForGameVariantId(new Guid(guid))
                        .SkipCache();

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(GameVariant), result);
            Assert.AreEqual(_gameVariant, result);
        }
        public static void Validate(this GetGameVariant getGameVariant)
        {
            var validationResult = new ValidationResult();

            if (string.IsNullOrWhiteSpace(getGameVariant.Id))
            {
                validationResult.Messages.Add("GetGameVariant query requires a GameVariantId to be set.");
            }

            if (!validationResult.Success)
            {
                throw new ValidationException(validationResult.Messages);
            }
        }
示例#26
0
        public async Task GetGameVariant_SchemaIsValid(string gamertag, string guid)
        {
            var weaponsSchema = JSchema.Parse(File.ReadAllText(Halo5Config.UserGeneratedContentGameVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Halo5Config.UserGeneratedContentGameVariantJsonSchemaPath))
            });

            var query = new GetGameVariant(gamertag, new Guid(guid))
                        .SkipCache();

            var jArray = await Global.Session.Get <JObject>(query.Uri);

            SchemaUtility.AssertSchemaIsValid(weaponsSchema, jArray);
        }
示例#27
0
        public async Task GetGameVariant_SchemaIsValid(string guid)
        {
            var gameVariantSchema = JSchema.Parse(File.ReadAllText(Config.GameVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Config.GameVariantJsonSchemaPath))
            });

            var query = new GetGameVariant()
                        .ForGameVariantId(new Guid(guid))
                        .SkipCache();

            var jArray = await Global.Session.Get <JObject>(query.GetConstructedUri());

            SchemaUtility.AssertSchemaIsValid(gameVariantSchema, jArray);
        }
示例#28
0
        public async Task GetGameVariant_ModelMatchesSchema(string gamertag, string guid)
        {
            var schema = JSchema.Parse(File.ReadAllText(Halo5Config.UserGeneratedContentGameVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Halo5Config.UserGeneratedContentGameVariantJsonSchemaPath))
            });

            var query = new GetGameVariant(gamertag, new Guid(guid))
                        .SkipCache();

            var result = await Global.Session.Query(query);

            var json       = JsonConvert.SerializeObject(result);
            var jContainer = JsonConvert.DeserializeObject <JObject>(json);

            SchemaUtility.AssertSchemaIsValid(schema, jContainer);
        }
示例#29
0
        public async Task GetGameVariant_MissingGuid()
        {
            var query = new GetGameVariant()
                .SkipCache();

            try
            {
                await Session.Query(query);
                Assert.Fail("An exception should have been thrown");
            }
            catch (HaloApiException e)
            {
                Assert.AreEqual((int) Enumeration.StatusCode.NotFound, e.HaloApiError.StatusCode);
            }
            catch (System.Exception e)
            {
                Assert.Fail("Unexpected exception of type {0} caught: {1}", e.GetType(), e.Message);
            }
        }
示例#30
0
        public async Task GetGameVariant_InvalidGuid()
        {
            var query = new GetGameVariant(Guid.NewGuid())
                        .SkipCache();

            try
            {
                await Global.Session.Query(query);

                Assert.Fail("An exception should have been thrown");
            }
            catch (HaloApiException e)
            {
                Assert.AreEqual((int)Enumeration.Halo5.StatusCode.NotFound, e.HaloApiError.StatusCode);
            }
            catch (System.Exception e)
            {
                Assert.Fail("Unexpected exception of type {0} caught: {1}", e.GetType(), e.Message);
            }
        }
示例#31
0
        public async Task <GameVariant> GetGameVariant(Guid id)
        {
            if (id == Guid.Empty)
            {
                return(null);
            }
            var data = await _db.FindAsync <GameVariantData>(id.ToString());

            if (data == null)
            {
                var query = new GetGameVariant().ForGameVariantId(id);
                var item  = await _session.Query(query);

                if (item == null)
                {
                    return(null);
                }
                data = new GameVariantData(id, item);
                _db.InsertAsync(data);
                return(item);
            }
            return(data.Deserialize());
        }
示例#32
0
        public async Task GetGameVariant_SchemaIsValid(string guid)
        {
            var gameVariantSchema = JSchema.Parse(File.ReadAllText(Config.GameVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.GameVariantJsonSchemaPath))
            });

            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid))
                .SkipCache();

            var jArray = await Global.Session.Get<JObject>(query.GetConstructedUri());

            SchemaUtility.AssertSchemaIsValid(gameVariantSchema, jArray);
        }
示例#33
0
        public async Task GetGameVariant_InvalidGamertag(string gamertag)
        {
            var query = new GetGameVariant()
                .ForPlayer(gamertag);

            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
示例#34
0
        public async Task GetGameVariant_MissingGameVariantId()
        {
            var query = new GetGameVariant()
                .ForPlayer("Player");

            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
示例#35
0
        public async Task Query_DoesNotThrow(string gamertag, string guid)
        {
            var query = new GetGameVariant()
                .ForPlayer(gamertag)
                .ForGameVariantId(new Guid(guid))
                .SkipCache();

            var result = await _mockSession.Query(query);
        
            Assert.IsInstanceOf(typeof(GameVariant), result);
            Assert.AreEqual(_gameVariant, result);
        }
示例#36
0
        public async Task GetGameVariant_MissingGuid()
        {
            var query = new GetGameVariant()
                .SkipCache();

            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
示例#37
0
        public async Task GetGameVariant_ModelMatchesSchema(string guid)
        {
            var schema = JSchema.Parse(File.ReadAllText(Config.GameVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.GameVariantJsonSchemaPath))
            });

            var query = new GetGameVariant()
                .ForGameVariantId(new Guid(guid))
                .SkipCache();

            var result = await Global.Session.Query(query);

            var json = JsonConvert.SerializeObject(result);
            var jContainer = JsonConvert.DeserializeObject<JContainer>(json);

            SchemaUtility.AssertSchemaIsValid(schema, jContainer);
        }
示例#38
0
        public void Uri_MatchesExpected(string guid)
        {
            var query = new GetGameVariant(new Guid(guid));

            Assert.AreEqual($"https://www.haloapi.com/metadata/h5/metadata/game-variants/{guid}", query.Uri);
        }
示例#39
0
        public void Uri_MatchesExpected(string gamertag, string guid)
        {
            var query = new GetGameVariant(gamertag, new Guid(guid));

            Assert.AreEqual($"https://www.haloapi.com/ugc/h5/players/{gamertag}/gamevariants/{guid}", query.Uri);
        }