Ejemplo n.º 1
0
        public void GetConstructedUri_NoParamaters_MatchesExpected()
        {
            var query = new GetMapVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual(BaseUri, uri);
        }
Ejemplo n.º 2
0
        public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetMapVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/mapvariants/{null}", uri);
        }
Ejemplo n.º 3
0
        public void GetConstructedUri_NoParamaters_MatchesExpected()
        {
            var query = new GetMapVariant();

            var uri = query.GetConstructedUri();

            Assert.AreEqual("metadata/h5/metadata/map-variants/", uri);
        }
Ejemplo n.º 4
0
        public void GetConstructedUri_ForMapVariantId_MatchesExpected(string guid)
        {
            var query = new GetMapVariant()
                .ForMapVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"metadata/h5/metadata/map-variants/{guid}", uri);
        }
Ejemplo n.º 5
0
        public void GetConstructedUri_ForPlayer_MatchesExpected(string gamertag)
        {
            var query = new GetMapVariant()
                .ForPlayer(gamertag);

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/mapvariants/{null}", uri);
        }
Ejemplo n.º 6
0
        public void GetConstructedUri_InGameMode_MatchesExpected(string guid)
        {
            var query = new GetMapVariant()
                .ForMapVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{null}/mapvariants/{guid}", uri);
        }
Ejemplo n.º 7
0
        public async Task Query_DoesNotThrow()
        {
            var query = new GetMapVariant();

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(MapVariant), result);
            Assert.AreEqual(_mapVariant, result);
        }
Ejemplo n.º 8
0
        public async Task GetMapVariant(string guid)
        {
            var query = new GetMapVariant()
                .ForMapVariantId(new Guid(guid))
                .SkipCache();

            var result = await Session.Query(query);

            Assert.IsInstanceOf(typeof (MapVariant), result);
        }
Ejemplo n.º 9
0
        public void GetConstructedUri_Complex_MatchesExpected(string gamertag, string guid)
        {
            var query = new GetMapVariant()
                .ForPlayer(gamertag)
                .ForMapVariantId(new Guid(guid));

            var uri = query.GetConstructedUri();

            Assert.AreEqual($"ugc/h5/players/{gamertag}/mapvariants/{guid}", uri);
        }
Ejemplo n.º 10
0
        public async Task GetMapVariant_IsSerializable(string guid)
        {
            var query = new GetMapVariant()
                .ForMapVariantId(new Guid(guid))
                .SkipCache();

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

            var serializationUtility = new SerializationUtility<MapVariant>();
            serializationUtility.AssertRoundTripSerializationIsPossible(result);
        }
Ejemplo n.º 11
0
        public async Task GetMapVariant_ModelMatchesSchema(string guid)
        {
            var schema = JSchema.Parse(File.ReadAllText(Config.MapVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Config.MapVariantJsonSchemaPath))
            });

            var query = new GetMapVariant()
                        .ForMapVariantId(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);
        }
Ejemplo n.º 12
0
        public static void Validate(this GetMapVariant GetMapVariant)
        {
            var validationResult = new ValidationResult();

            if (!GetMapVariant.Player.IsValidGamertag())
            {
                validationResult.Messages.Add("GetMapVariant query requires a valid Gamertag (Player) to be set.");
            }

            if (string.IsNullOrWhiteSpace(GetMapVariant.Id))
            {
                validationResult.Messages.Add("GetMapVariant query requires a Map Variant (Id) to be set.");
            }

            if (!validationResult.Success)
            {
                throw new ValidationException(validationResult.Messages);
            }
        }
Ejemplo n.º 13
0
        public async Task GetMapVariant_MissingGuid()
        {
            var query = new GetMapVariant()
                .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);
            }
        }
Ejemplo n.º 14
0
        public async Task GetMapVariant_InvalidGuid()
        {
            var query = new GetMapVariant(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);
            }
        }
Ejemplo n.º 15
0
        public async Task <MapVariant> GetMapVariant(Guid id)
        {
            if (id == Guid.Empty)
            {
                return(null);
            }
            var data = await _db.FindAsync <MapVariantData>(id.ToString());

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

                if (item == null)
                {
                    return(null);
                }
                data = new MapVariantData(id, item);
                _db.InsertAsync(data);
                return(item);
            }
            return(data.Deserialize());
        }
Ejemplo n.º 16
0
        public async Task GetMapVariant_DoesNotThrow(string gamertag, string guid)
        {
            var query = new GetMapVariant()
                .ForPlayer(gamertag)
                .ForMapVariantId(new Guid(guid))
                .SkipCache();

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

            Assert.IsInstanceOf(typeof(MapVariant), result);
        }
Ejemplo n.º 17
0
        public void Uri_MatchesExpected(string guid)
        {
            var query = new GetMapVariant(new Guid(guid));

            Assert.AreEqual($"https://www.haloapi.com/metadata/h5/metadata/map-variants/{guid}", query.Uri);
        }
Ejemplo n.º 18
0
        public async Task GetMapVariant_MissingMapVariantId()
        {
            var query = new GetMapVariant()
                .ForPlayer("Player");

            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
Ejemplo n.º 19
0
        public async Task GetMapVariant_InvalidGamertag(string gamertag)
        {
            var query = new GetMapVariant()
                .ForPlayer(gamertag);

            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
Ejemplo n.º 20
0
        public async Task GetMapVariant_ModelMatchesSchema(string gamertag, string guid)
        {
            var schema = JSchema.Parse(File.ReadAllText(Config.UserGeneratedContentMapVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.UserGeneratedContentMapVariantJsonSchemaPath))
            });

            var query = new GetMapVariant()
                .ForPlayer(gamertag)
                .ForMapVariantId(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);
        }
Ejemplo n.º 21
0
        public async Task GetMapVariant_MissingGuid()
        {
            var query = new GetMapVariant()
                .SkipCache();


            await Global.Session.Query(query);
            Assert.Fail("An exception should have been thrown");
        }
Ejemplo n.º 22
0
        public async Task GetMapVariant_SchemaIsValid(string gamertag, string guid)
        {
            var weaponsSchema = JSchema.Parse(File.ReadAllText(Config.UserGeneratedContentMapVariantJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.UserGeneratedContentMapVariantJsonSchemaPath))
            });

            var query = new GetMapVariant()
                .ForPlayer(gamertag)
                .ForMapVariantId(new Guid(guid))
                .SkipCache();

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

            SchemaUtility.AssertSchemaIsValid(weaponsSchema, jArray);
        }
Ejemplo n.º 23
0
        public void Uri_MatchesExpected(string gamertag, string guid)
        {
            var query = new GetMapVariant(gamertag, new Guid(guid));

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