00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 #include "xml_address_space_loader.h" 00012 #include "address_space_registry_test.h" 00013 #include "services_registry_test.h" 00014 00015 #include <opc/ua/protocol/attribute_ids.h> 00016 #include <opc/ua/protocol/object_ids.h> 00017 #include <opc/ua/protocol/status_codes.h> 00018 #include <opc/ua/server/addons/address_space.h> 00019 00020 #include <functional> 00021 #include <gtest/gtest.h> 00022 #include <gmock/gmock.h> 00023 00024 // TODO Add tests for several appearing nodes in xml. 00025 // TODO Add tests for all node classes and for invalid classe names. 00026 00027 using namespace testing; 00028 using namespace OpcUa; 00029 using namespace OpcUa::Internal; 00030 00031 class XmlSpaceAddon : public testing::Test 00032 { 00033 protected: 00034 virtual void SetUp() 00035 { 00036 Addons = Common::CreateAddonsManager(); 00037 OpcUa::Test::RegisterAddressSpace(*Addons); 00038 OpcUa::Test::RegisterServicesRegistry(*Addons); 00039 Addons->Register(CreateXmlAddressSpaceAddonConfig()); 00040 Addons->Start(); 00041 } 00042 00043 virtual void TearDown() 00044 { 00045 Addons->Stop(); 00046 Addons.reset(); 00047 } 00048 00049 protected: 00050 Common::AddonInformation CreateXmlAddressSpaceAddonConfig() 00051 { 00052 Common::AddonInformation config; 00053 config.Id = OpcUa::Server::XmlAddressSpaceAddonId; 00054 config.Factory.reset(new OpcUa::Internal::XmlAddressSpaceAddonFactory()); 00055 config.Dependencies.push_back(OpcUa::Server::AddressSpaceRegistryAddonId); 00056 return config; 00057 } 00058 00059 protected: 00060 Common::AddonsManager::SharedPtr Addons; 00061 }; 00062 00063 TEST_F(XmlSpaceAddon, CanBeLoaded) 00064 { 00065 ASSERT_TRUE(static_cast<bool>(Addons->GetAddon(OpcUa::Server::XmlAddressSpaceAddonId))); 00066 }