public void Case12() { var a = new Biblio() { identidiant = 4, nom = "biliotheque", int_article = new Article { Id = 4, body = "body" }, article_comment = new Article { body = "convertible2" } }; a.list_person = new PersonModel { Name = "Franck", Password = "******" }; JsonApiParser parser = this.GetParser(a); parser.AddIncludeQuery("article_comment"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"]["id"], 4); Assert.Equal(json["data"]["type"], "bibi"); Assert.Equal(json["data"]["attributes"]["name"], "biliotheque"); Assert.Equal(json["data"]["relationships"]["article_comment"]["data"]["type"], "article"); Assert.Equal(json["included"][0]["type"], "article"); Assert.Equal(json["included"][0]["attributes"]["body"], "convertible2"); var biblioModel = new Biblio(); var model = (Biblio) new JsonApiReader(json.ToString(), biblioModel).GetModel(); Assert.Equal(model.identidiant, 4); Assert.Equal(model.nom, "biliotheque"); }
public void Case4() { var auteur = new PersonModel() { Id = 4, Name = "Auteur" }; var comments = new List <Comment>() { new Comment() { id = 1, body = "comment 1" }, new Comment() { id = 2, body = "comment 2" } }; var article = new Article() { title = "titre article", body = "body artcicle", author = auteur, comments = comments }; JsonApiParser parser = this.GetParser(article); parser.AddIncludeQuery("*"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"]["type"].ToString(), "article"); Assert.Equal(json["data"]["id"].ToString(), "0_0"); Assert.Equal(json["data"]["attributes"]["title"].ToString(), "titre article"); Assert.Equal(json["data"]["attributes"]["body"].ToString(), "body artcicle"); Assert.Equal(json["data"]["attributes"]["online"].ToString(), "False"); Assert.Equal(json["data"]["relationships"]["author"]["data"]["type"].ToString(), "personmodel"); Assert.Equal(json["data"]["relationships"]["author"]["data"]["id"].ToString(), "4"); Assert.Equal(json["data"]["relationships"]["comments"]["data"].Type.ToString(), "Array"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][0]["type"].ToString(), "comment"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][0]["id"].ToString(), "1"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][1]["type"].ToString(), "comment"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][1]["id"].ToString(), "2"); var articlemodel = new Article(); var model = (Article) new JsonApiReader(json.ToString(), articlemodel).GetModel(); Assert.Equal(model.Id, 0); Assert.Equal(model.title, "titre article"); Assert.Equal(model.body, "body artcicle"); Assert.Equal(model.author.Id, 4); Assert.Equal(model.comments.Count, 2); Assert.Equal(model.comments[0].id, 1); Assert.Equal(model.comments[1].id, 2); }
public void Case2() { var person = new PersonModel() { Id = 4, Name = "Nom", Password = "******", online = true, date = DateTime.Today }; person.Parent = new PersonModel() { Id = 5, Name = "Parent Name", Password = "******", online = true, date = DateTime.Today.AddDays(2) }; JsonApiParser parser = this.GetParser(person); parser.AddIncludeQuery("Parent"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"]["type"].ToString(), "personmodel"); Assert.Equal(json["data"]["id"].ToString(), "4"); Assert.Equal(json["data"]["attributes"]["Name"].ToString(), "Nom"); Assert.Equal(json["data"]["attributes"]["Password"].ToString(), "Password"); Assert.Equal(json["data"]["attributes"]["online"].ToString(), "True"); Assert.Equal(json["data"]["attributes"]["date"].ToString(), DateTime.Today.ToString("s")); Assert.Equal(json["data"]["relationships"]["Parent"]["data"]["type"].ToString(), "personmodel"); Assert.Equal(json["data"]["relationships"]["Parent"]["data"]["id"].ToString(), "5"); Assert.Equal(json["included"].Type.ToString(), "Array"); Assert.Equal(json["included"][0]["type"].ToString(), "personmodel"); Assert.Equal(json["included"][0]["id"].ToString(), "5"); Assert.Equal(json["included"][0]["attributes"]["Password"].ToString(), "pass parent"); Assert.Equal(json["included"][0]["attributes"]["Name"].ToString(), "Parent Name"); Assert.Equal(json["included"][0]["attributes"]["online"].ToString(), "True"); Assert.Equal(json["included"][0]["attributes"]["date"].ToString(), DateTime.Today.AddDays(2).ToString("s")); var personModel = new PersonModel(); var personResult = (PersonModel) new JsonApiReader(json.ToString(), personModel).GetModel(); Assert.Equal(personResult.Id, 4); Assert.Equal(personResult.Name, "Nom"); Assert.Equal(personResult.Password, "Password"); Assert.Equal(personResult.online, true); Assert.Equal(personResult.date, DateTime.Today); Assert.Equal(personResult.Parent.Id, 5); }
public void Case7() { var a = new Article() { IdJson = 1, title = "titre", body = "body" }; a.author = new PersonModel() { Id = 1, Name = "Franck", Parent = new PersonModel() { Id = 55, Name = "Parent Included" } }; a.comments = new List <Comment>() { new Comment() { id = 1, body = "i like it" }, new Comment() { id = 2, body = "yes i do" } }; JsonApiParser parser = this.GetParser(a); parser.AddIncludeQuery("author"); parser.AddIncludeQuery("comments"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"]["id"].ToString(), "1_0"); Assert.Equal(json["data"]["type"].ToString(), "article"); Assert.Equal(json["data"]["attributes"]["title"].ToString(), "titre"); Assert.Equal(json["data"]["attributes"]["body"].ToString(), "body"); Assert.Equal(json["data"]["relationships"]["author"].Type.ToString(), "Object"); Assert.Equal(json["data"]["relationships"]["author"]["data"]["id"], "1"); Assert.Equal(json["data"]["relationships"]["author"]["data"]["type"], "personmodel"); Assert.Equal(json["data"]["relationships"]["comments"]["data"].Type.ToString(), "Array"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][0]["id"], "1"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][0]["type"], "comment"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][1]["id"], "2"); Assert.Equal(json["data"]["relationships"]["comments"]["data"][1]["type"], "comment"); Assert.Equal(json["included"].Type.ToString(), "Array"); Assert.Equal(json["included"][0]["id"], "1"); Assert.Equal(json["included"][0]["type"], "personmodel"); Assert.Equal(json["included"][0]["attributes"]["Name"], "Franck"); Assert.Equal(json["included"][1]["type"], "comment"); Assert.Equal(json["included"][1]["id"], "1"); Assert.Equal(json["included"][1]["attributes"]["body"], "i like it"); Assert.Equal(json["included"][2]["type"], "comment"); Assert.Equal(json["included"][2]["id"], "2"); Assert.Equal(json["included"][2]["attributes"]["body"], "yes i do"); Assert.Throws <ArgumentOutOfRangeException>(() => json["included"][3]); var articlemodel = new Article(); var model = (Article) new JsonApiReader(json.ToString(), articlemodel).GetModel(); Assert.Equal(model.IdJson, 1); Assert.Equal(model.title, "titre"); Assert.Equal(model.body, "body"); Assert.Equal(model.author.Id, 1); Assert.Equal(model.comments[0].id, 1); Assert.Equal(model.comments[1].id, 2); }
public void Case6() { var u = new PersonModel() { Id = 3, Name = "Test 1", UserName = "******" }; u.Articles = new List <Article>() { new Article() { IdJson = 1, body = "body article", title = "title" }, new Article() { IdJson = 2, body = "body article", title = "title" } }; var listperson = new List <PersonModel>() { u, new PersonModel() { Id = 4, Name = "Test 2", UserName = "******", Parent = u } }; JsonApiParser parser = this.GetParser(listperson); parser.AddIncludeQuery("*"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"].Type.ToString(), "Array"); Assert.Equal(json["data"][0]["type"].ToString(), "personmodel"); Assert.Equal(json["data"][0]["id"].ToString(), "3"); Assert.Equal(json["data"][0]["attributes"]["UserName"].ToString(), "NameTest 1"); Assert.Equal(json["data"][0]["relationships"]["Articles"]["data"].Type.ToString(), "Array"); Assert.Equal(json["data"][0]["relationships"]["Articles"]["data"][0]["type"], "article"); Assert.Equal(json["data"][0]["relationships"]["Articles"]["data"][0]["id"], "1_0"); Assert.Equal(json["data"][0]["relationships"]["Articles"]["data"][1]["type"], "article"); Assert.Equal(json["data"][0]["relationships"]["Articles"]["data"][1]["id"], "2_0"); Assert.Equal(json["data"][1]["type"].ToString(), "personmodel"); Assert.Equal(json["data"][1]["id"].ToString(), "4"); Assert.Equal(json["data"][1]["relationships"]["Parent"]["data"].Type.ToString(), "Object"); Assert.Equal(json["data"][1]["relationships"]["Parent"]["data"]["type"], "personmodel"); Assert.Equal(json["data"][1]["relationships"]["Parent"]["data"]["id"], "3"); var listmodel = new List <PersonModel>(); var model = (List <PersonModel>) new JsonApiReader(json.ToString(), listmodel).GetModel(); Assert.Equal(model[0].Id, 3); Assert.Equal(model[0].UserName, "NameTest 1"); Assert.Equal(model[0].Articles[0].IdJson, 1); Assert.Equal(model[0].Articles[1].IdJson, 2); Assert.Equal(model[1].Id, 4); Assert.Equal(model[1].UserName, "NameTest 2"); Assert.Equal(model[1].Parent.Id, 3); }
public void Case5() { var auteur = new PersonModel() { Id = 4, Name = "Auteur" }; var comments = new List <Comment>() { new Comment() { id = 1, body = "comment 1" }, new Comment() { id = 2, body = "comment 2" } }; var articles = new List <Article>() { new Article() { title = "titre article 1", body = "body artcicle 1", author = auteur, comments = comments }, new Article() { title = "titre article 2", body = "body artcicle 2", author = auteur, comments = comments } }; JsonApiParser parser = this.GetParser(articles); parser.AddIncludeQuery("*"); var json = (JObject)parser.GetJson(); Assert.Equal(json["data"].Type.ToString(), "Array"); //article 1 Assert.Equal(json["data"][0]["type"].ToString(), "article"); Assert.Equal(json["data"][0]["id"].ToString(), "0_0"); Assert.Equal(json["data"][0]["attributes"]["title"].ToString(), "titre article 1"); Assert.Equal(json["data"][0]["attributes"]["body"].ToString(), "body artcicle 1"); Assert.Equal(json["data"][0]["relationships"]["author"]["data"]["type"].ToString(), "personmodel"); Assert.Equal(json["data"][0]["relationships"]["author"]["data"]["id"].ToString(), "4"); Assert.Equal(json["data"][0]["relationships"]["comments"]["data"].Type.ToString(), "Array"); Assert.Throws <ArgumentOutOfRangeException>(() => json["data"][0]["relationships"]["comments"]["data"][3]); Assert.Equal(json["data"][0]["relationships"]["comments"]["data"][0]["type"].ToString(), "comment"); Assert.Equal(json["data"][0]["relationships"]["comments"]["data"][0]["id"].ToString(), "1"); Assert.Equal(json["data"][0]["relationships"]["comments"]["data"][1]["type"].ToString(), "comment"); Assert.Equal(json["data"][0]["relationships"]["comments"]["data"][1]["id"].ToString(), "2"); //article 2 Assert.Equal(json["data"][1]["type"].ToString(), "article"); Assert.Equal(json["data"][1]["id"].ToString(), "0_0"); Assert.Equal(json["data"][1]["attributes"]["title"].ToString(), "titre article 2"); Assert.Equal(json["data"][1]["attributes"]["body"].ToString(), "body artcicle 2"); Assert.Equal(json["data"][1]["relationships"]["author"]["data"]["type"].ToString(), "personmodel"); Assert.Equal(json["data"][1]["relationships"]["author"]["data"]["id"].ToString(), "4"); Assert.Equal(json["data"][1]["relationships"]["comments"]["data"].Type.ToString(), "Array"); Assert.Equal(json["data"][1]["relationships"]["comments"]["data"][0]["type"].ToString(), "comment"); Assert.Equal(json["data"][1]["relationships"]["comments"]["data"][0]["id"].ToString(), "1"); Assert.Equal(json["data"][1]["relationships"]["comments"]["data"][1]["type"].ToString(), "comment"); Assert.Equal(json["data"][1]["relationships"]["comments"]["data"][1]["id"].ToString(), "2"); var listmodel = new List <Article>(); var model = (List <Article>) new JsonApiReader(json.ToString(), listmodel).GetModel(); //article 1 Assert.Equal(model[0].Id, 0); Assert.Equal(model[0].title, "titre article 1"); Assert.Equal(model[0].body, "body artcicle 1"); Assert.Equal(model[0].online, false); Assert.Equal(model[0].author.Id, 4); Assert.Equal(model[0].comments.Count, 2); Assert.Equal(model[0].comments[0].id, 1); Assert.Equal(model[0].comments[1].id, 2); //article 2 Assert.Equal(model[1].Id, 0); Assert.Equal(model[1].title, "titre article 2"); Assert.Equal(model[1].body, "body artcicle 2"); Assert.Equal(model[1].online, false); Assert.Equal(model[1].author.Id, 4); Assert.Equal(model[1].comments.Count, 2); Assert.Equal(model[1].comments[0].id, 1); Assert.Equal(model[1].comments[1].id, 2); }