Example #1
0
        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");
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }