X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FConfig.test.cc;h=d34f6a5ff9f99942197658e24a706e36559a9f1b;hb=1342c5d49ca8bd523c9fdf7d89b40448cdfd394b;hp=d3199664d9b8efad68aa49bea591f95f4547cb42;hpb=767a76da8e5b96a69b620e44d32e0a1b04005679;p=senf.git diff --git a/senf/Utils/Console/Config.test.cc b/senf/Utils/Console/Config.test.cc index d319966..d34f6a5 100644 --- a/senf/Utils/Console/Config.test.cc +++ b/senf/Utils/Console/Config.test.cc @@ -1,24 +1,29 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY -// Stefan Bund // -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// The contents of this file are subject to the Fraunhofer FOKUS Public License +// Version 1.0 (the "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// http://senf.berlios.de/license.html // -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// The Fraunhofer FOKUS Public License Version 1.0 is based on, +// but modifies the Mozilla Public License Version 1.1. +// See the full license text for the amendments. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the License. +// +// The Original Code is Fraunhofer FOKUS code. +// +// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. +// (registered association), Hansastraße 27 c, 80686 Munich, Germany. +// All Rights Reserved. +// +// Contributor(s): +// Stefan Bund /** \file \brief Config unit tests */ @@ -34,7 +39,7 @@ #include #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace { std::string val1; @@ -51,7 +56,7 @@ namespace { public: TempFile(std::string const & name) : name_ (name), file_ (name_.c_str()) {} ~TempFile() { file_.close(); boost::filesystem::remove(name_); } - + template TempFile & operator<<(T const & v) { file_ << v; return *this; } enum Closer { close }; void operator<<(Closer) { file_.close(); } std::string const & name() { return name_; } @@ -60,20 +65,37 @@ namespace { std::string name_; std::ofstream file_; }; + +} + +SENF_AUTO_UNIT_TEST(configBundle_empty) +{ + TempFile cfg ("test.cfg"); + cfg << TempFile::close; + + senf::console::ScopedDirectory<> root; + root.add("fun2", senf::console::factory::Command(&fun2)); + + senf::console::ConfigBundle bundle(root); + bundle.add( senf::console::FileConfig(cfg.name())); + + SENF_CHECK_NO_THROW( bundle.parse() ); } SENF_AUTO_UNIT_TEST(configBundle) { + namespace fty = senf::console::factory; + senf::console::ScopedDirectory<> root; senf::console::root().add("root", root); senf::console::ScopedDirectory<> chroot; senf::console::root().add("chroot", chroot); - root.mkdir("dir1").add("fun1", &fun1); - root.add("fun2", &fun2); - chroot.mkdir("dir1").add("fun1", &fun1); - chroot.add("fun2", &fun2); + root.add("dir1", fty::Directory()).add("fun1", fty::Command(&fun1)); + root.add("fun2", fty::Command(&fun2)); + chroot.add("dir1", fty::Directory()).add("fun1", fty::Command(&fun1)); + chroot.add("fun2", fty::Command(&fun2)); TempFile cfg ("test.cfg"); cfg << "dir1/fun1 foo; fun2;" << TempFile::close; @@ -87,14 +109,14 @@ SENF_AUTO_UNIT_TEST(configBundle) SENF_CHECK_NO_THROW( bundle.parse() ); BOOST_CHECK_EQUAL( val1, "bar" ); BOOST_CHECK_EQUAL( val2, true ); - + bundle.chroot( chroot); SENF_CHECK_NO_THROW( bundle.parse() ); BOOST_CHECK_EQUAL( val1, "bar" ); BOOST_CHECK_EQUAL( val2, true ); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_