TEST(TestMeiElement, TestConstGetChildren) { MeiElement *p = new MeiElement("note"); MeiElement *c2 = new Accid(); MeiElement *c3 = new Note(); vector<MeiElement*> chn; chn.push_back(c2); chn.push_back(c3); p->setChildren(chn); vector<MeiElement*> get = p->getChildren(); // Can't add a new element to the vector get.push_back(new mei::Artic()); ASSERT_EQ(2, p->getChildren().size()); }
TEST(TestMeiElement, TestGetChildrenByName) { MeiElement *p = new MeiElement("note"); MeiElement *c1 = new Accid(); MeiElement *c2 = new Accid(); MeiElement *c3 = new Note(); vector<MeiElement*> chn; chn.push_back(c1); chn.push_back(c2); chn.push_back(c3); p->setChildren(chn); ASSERT_EQ(3, p->getChildren().size()); vector<MeiElement*> get = p->getChildrenByName("accid"); ASSERT_EQ(2, get.size()); }
TEST(TestMeiElement, TestDeleteChildren) { MeiElement *p = new MeiElement("note"); MeiElement *c1 = new Accid(); MeiElement *c2 = new Accid(); MeiElement *c3 = new Note(); vector<MeiElement*> chn; chn.push_back(c1); chn.push_back(c2); chn.push_back(c3); p->setChildren(chn); ASSERT_EQ(3, p->getChildren().size()); p->deleteAllChildren(); ASSERT_EQ(0, p->getChildren().size()); }
TEST(TestMeiElement, TestRemoveChildByName) { MeiElement *p = new MeiElement("note"); MeiElement *c1 = new Accid(); MeiElement *c2 = new Accid(); MeiElement *c3 = new Note(); vector<MeiElement*> chn; chn.push_back(c1); chn.push_back(c2); chn.push_back(c3); p->setChildren(chn); ASSERT_TRUE(p->hasChildren("accid")); ASSERT_EQ(3, p->getChildren().size()); p->removeChildrenByName("accid"); ASSERT_EQ(1, p->getChildren().size()); ASSERT_FALSE(p->hasChildren("accid")); ASSERT_TRUE(p->hasChildren("note")); }
TEST(TestMeiElement, TestSetChildren) { MeiElement *p = new Note(); MeiElement *ch1 = new Accid(); MeiElement *ch2 = new mei::Dot(); MeiElement *ch3 = new mei::Artic(); p->addChild(ch1); ASSERT_EQ(1, p->getChildren().size()); vector<MeiElement*> children; children.push_back(ch2); children.push_back(ch3); p->setChildren(children); ASSERT_EQ(2, p->getChildren().size()); // Can't affect children by changing the initial vector children.push_back(new Accid()); ASSERT_EQ(2, p->getChildren().size()); p->addChild(ch1); ASSERT_EQ(3, p->getChildren().size()); }