YangSchema: Throw on enabling invalid features

Bug: https://tree.taiga.io/project/jktjkt-netconf-cli/issue/181
Change-Id: Iad3c37098308da752ab7fbca95d900fbe67605d2
diff --git a/src/yang_schema.cpp b/src/yang_schema.cpp
index 96b7e6e..4b65e13 100644
--- a/src/yang_schema.cpp
+++ b/src/yang_schema.cpp
@@ -374,12 +374,14 @@
 
 void YangSchema::enableFeature(const std::string& moduleName, const std::string& featureName)
 {
+    using namespace std::string_literals;
     auto module = getYangModule(moduleName);
     if (!module) {
-        using namespace std::string_literals;
         throw std::runtime_error("Module \""s + moduleName + "\" doesn't exist.");
     }
-    module->feature_enable(featureName.c_str());
+    if (module->feature_enable(featureName.c_str())) {
+        throw std::runtime_error("Can't enable feature \""s + featureName + "\" for module \"" + moduleName + "\".");
+    }
 }
 
 void YangSchema::registerModuleCallback(const std::function<std::string(const char*, const char*, const char*, const char*)>& clb)
diff --git a/tests/yang.cpp b/tests/yang.cpp
index 833ef70..843e1a8 100644
--- a/tests/yang.cpp
+++ b/tests/yang.cpp
@@ -1188,5 +1188,10 @@
         {
             REQUIRE_THROWS_AS(ys.enableFeature("non-existing", "just-no"), std::runtime_error);
         }
+
+        SECTION("enableFeature - non existing feature")
+        {
+            REQUIRE_THROWS_AS(ys.enableFeature("example-schema", "just-no"), std::runtime_error);
+        }
     }
 }