public async Task GetSeasons_DoesNotThrow() { var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons() .SkipCache(); var result = await Global.Session.Query(query); Assert.IsInstanceOf(typeof(PagedResponse <ContentItemTypeA <Model.HaloWars2.Metadata.Season.View> >), result); }
public async Task GetConstructedUri_InvalidSkip(int skip) { var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons() .Skip(skip); await Global.Session.Query(query); Assert.Fail("An exception should have been thrown"); }
public async Task GetSeasons_IsSerializable() { var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons() .SkipCache(); var result = await Global.Session.Query(query); SerializationUtility <PagedResponse <ContentItemTypeA <Model.HaloWars2.Metadata.Season.View> > > .AssertRoundTripSerializationIsPossible(result); }
public void Uri_MatchesExpected(int skip) { var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons(); Assert.AreEqual("https://www.haloapi.com/metadata/hw2/seasons", query.Uri); query.Skip(skip); Assert.AreEqual($"https://www.haloapi.com/metadata/hw2/seasons?startAt={skip}", query.Uri); }
public async Task GetSeasons_SchemaIsValid() { var jSchema = JSchema.Parse(File.ReadAllText(Schema), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Schema)) }); var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons() .SkipCache(); var jArray = await Global.Session.Get <JObject>(query.Uri); SchemaUtility.AssertSchemaIsValid(jSchema, jArray); }
public async Task GetSeasons_ModelMatchesSchema() { var schema = JSchema.Parse(File.ReadAllText(Schema), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Schema)) }); var query = new HaloSharp.Query.HaloWars2.Metadata.GetSeasons() .SkipCache(); var result = await Global.Session.Query(query); var json = JsonConvert.SerializeObject(result); var jContainer = JsonConvert.DeserializeObject <JObject>(json); SchemaUtility.AssertSchemaIsValid(schema, jContainer); }