void ConfigurationTest::move() { Configuration conf; ConfigurationGroup* original = conf.addGroup("group"); original->addGroup("descendent")->setValue<int>("value", 42); /* Move constructor for ConfigurationGroup */ ConfigurationGroup* constructedMove = new ConfigurationGroup(std::move(*original)); CORRADE_VERIFY(original->isEmpty()); CORRADE_VERIFY(!constructedMove->configuration()); CORRADE_VERIFY(!constructedMove->group("descendent")->configuration()); /* Move assignment for ConfigurationGroup */ ConfigurationGroup* assignedMove = conf.addGroup("another"); CORRADE_VERIFY(assignedMove->configuration() == &conf); *assignedMove = std::move(*constructedMove); CORRADE_VERIFY(constructedMove->isEmpty()); CORRADE_VERIFY(assignedMove->configuration() == &conf); CORRADE_VERIFY(assignedMove->group("descendent")->configuration() == &conf); delete constructedMove; /* Move constructor for Configuration */ Configuration confConstructedMove(std::move(conf)); CORRADE_VERIFY(conf.isEmpty()); CORRADE_VERIFY(confConstructedMove.configuration() == &confConstructedMove); CORRADE_VERIFY(confConstructedMove.group("group")->configuration() == &confConstructedMove); /* Move assignment for Configuration */ Configuration confAssignedMove; confAssignedMove = std::move(confConstructedMove); CORRADE_VERIFY(confConstructedMove.isEmpty()); CORRADE_VERIFY(confAssignedMove.configuration() == &confAssignedMove); CORRADE_VERIFY(confAssignedMove.group("group")->configuration() == &confAssignedMove); }
void ConfigurationTest::standaloneGroup() { ConfigurationGroup group; CORRADE_VERIFY(!group.configuration()); group.setValue("value", "hello"); group.addGroup("group")->addValue("number", 42); CORRADE_COMPARE(group.value("value"), "hello"); CORRADE_COMPARE(group.group("group")->value<int>("number"), 42); }
void ConfigurationTest::copy() { Configuration conf; ConfigurationGroup* original = conf.addGroup("group"); original->addGroup("descendent")->setValue<int>("value", 42); ConfigurationGroup* constructedCopy = new ConfigurationGroup(*original); CORRADE_VERIFY(!constructedCopy->configuration()); CORRADE_VERIFY(!constructedCopy->group("descendent")->configuration()); ConfigurationGroup* assignedCopy = conf.addGroup("another"); CORRADE_VERIFY(assignedCopy->configuration() == &conf); *assignedCopy = *original; CORRADE_VERIFY(assignedCopy->configuration() == &conf); CORRADE_VERIFY(assignedCopy->group("descendent")->configuration() == &conf); original->group("descendent")->setValue<int>("value", 666); CORRADE_COMPARE(original->group("descendent")->value<int>("value"), 666); CORRADE_COMPARE(constructedCopy->group("descendent")->value<int>("value"), 42); CORRADE_COMPARE(assignedCopy->group("descendent")->value<int>("value"), 42); delete constructedCopy; }