Index: src/Parser/Parameters/unittests/Makefile.am
===================================================================
--- src/Parser/Parameters/unittests/Makefile.am	(revision ec0acc0fca5519d83e2d28d3453c58ad0e82b4e2)
+++ src/Parser/Parameters/unittests/Makefile.am	(revision 89a67feeca325baa0a621159f142173ffe172e6d)
@@ -8,5 +8,6 @@
 	../Parser/Parameters/unittests/DiscreteValueUnitTest.cpp \
 	../Parser/Parameters/unittests/DiscreteParameterUnitTest.cpp \
-	../Parser/Parameters/unittests/ParameterStorageUnitTest.cpp
+	../Parser/Parameters/unittests/ParameterStorageUnitTest.cpp \
+	../Parser/Parameters/unittests/StringParameterUnitTest.cpp
 
 PARSERPARAMETERSTESTSHEADERS = \
@@ -15,5 +16,6 @@
 	../Parser/Parameters/unittests/DiscreteValueUnitTest.hpp \
 	../Parser/Parameters/unittests/DiscreteParameterUnitTest.hpp \
-	../Parser/Parameters/unittests/ParameterStorageUnitTest.hpp
+	../Parser/Parameters/unittests/ParameterStorageUnitTest.hpp \
+	../Parser/Parameters/unittests/StringParameterUnitTest.hpp
 
 PARSERPARAMETERSTESTS = \
@@ -22,5 +24,6 @@
 	DiscreteValueUnitTest \
 	DiscreteParameterUnitTest \
-	ParameterStorageUnitTest
+	ParameterStorageUnitTest \
+	StringParameterUnitTest
 
 TESTS += $(PARSERPARAMETERSTESTS)
@@ -86,4 +89,15 @@
 	$(CodePatterns_LIBS) \
 	$(PARSERPARAMETERSLIBS)
+
+StringParameterUnitTest_SOURCES = $(top_srcdir)/src/unittests/UnitTestMain.cpp \
+	../Parser/Parameters/unittests/StringParameterUnitTest.cpp \
+	../Parser/Parameters/unittests/StringParameterUnitTest.hpp \
+	../Parser/Parameters/StringParameter.cpp \
+	../Parser/Parameters/StringParameter.hpp \
+	../Parser/Parameters/Parameter.hpp \
+	../Parser/Parameters/ValueInterface.hpp
+StringParameterUnitTest_LDADD = \
+	$(PARSERPARAMETERSLIBS)
+ 
  
 #AUTOMAKE_OPTIONS = parallel-tests
Index: src/Parser/Parameters/unittests/StringParameterUnitTest.cpp
===================================================================
--- src/Parser/Parameters/unittests/StringParameterUnitTest.cpp	(revision 89a67feeca325baa0a621159f142173ffe172e6d)
+++ src/Parser/Parameters/unittests/StringParameterUnitTest.cpp	(revision 89a67feeca325baa0a621159f142173ffe172e6d)
@@ -0,0 +1,100 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * StringParameterUnitTest.cpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "StringParameterUnitTest.hpp"
+
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/ui/text/TestRunner.h>
+
+#include "Parser/Parameters/StringParameter.hpp"
+
+#include "CodePatterns/Assert.hpp"
+
+#ifdef HAVE_TESTRUNNER
+#include "UnitTestMain.hpp"
+#endif /*HAVE_TESTRUNNER*/
+
+// Registers the fixture into the 'registry'
+CPPUNIT_TEST_SUITE_REGISTRATION( StringParameterTest );
+
+
+void StringParameterTest::setUp()
+{
+  // failing asserts should be thrown
+  ASSERT_DO(Assert::Throw);
+}
+
+void StringParameterTest::tearDown()
+{
+}
+
+/************************************ tests ***********************************/
+
+/** Unit test for comparator.
+ *
+ */
+void StringParameterTest::comparatorTest()
+{
+  // create instance
+  StringParameter test("stringParam");
+  StringParameter samenamedsamevalued("stringParam");
+  StringParameter samenamedelsevalued("stringParam");
+  StringParameter elsenamedsamevalued("string2Param");
+  StringParameter elsenamedelsevalued("string2Param");
+  test.set(std::string("1"));
+  samenamedsamevalued.set(std::string("1"));
+  samenamedelsevalued.set(std::string("2"));
+  elsenamedsamevalued.set(std::string("1"));
+  elsenamedelsevalued.set(std::string("2"));
+
+  CPPUNIT_ASSERT( test == samenamedsamevalued );
+  CPPUNIT_ASSERT( test != samenamedelsevalued );
+  CPPUNIT_ASSERT( test != elsenamedsamevalued );
+  CPPUNIT_ASSERT( test != elsenamedelsevalued );
+}
+
+/** Unit test for clone.
+ *
+ */
+void StringParameterTest::cloneTest()
+{
+  // create instance
+  StringParameter test("intParam");
+
+  // check that we throw because of unset parameter
+#ifndef NDEBUG
+  std::cout << "The following Assert failures are intended and do not indicate a failure of the test." << std::endl;
+  CPPUNIT_ASSERT_THROW(test.clone(), Assert::AssertionFailure);
+#endif
+
+  // set parameter
+  test.set(std::string("1"));
+
+  // is returned as Parameter but we can compare only in true class as
+  // Parameter may also be a DiscreteParameter where comparison is nonsense
+  StringParameter *instance = dynamic_cast< StringParameter *> (test.clone());
+
+  // different places in memory
+  CPPUNIT_ASSERT( &test != instance);
+
+  // but same contents
+  CPPUNIT_ASSERT( test == *instance);
+}
+
Index: src/Parser/Parameters/unittests/StringParameterUnitTest.hpp
===================================================================
--- src/Parser/Parameters/unittests/StringParameterUnitTest.hpp	(revision 89a67feeca325baa0a621159f142173ffe172e6d)
+++ src/Parser/Parameters/unittests/StringParameterUnitTest.hpp	(revision 89a67feeca325baa0a621159f142173ffe172e6d)
@@ -0,0 +1,35 @@
+/*
+ * StringParameterUnitTest.hpp
+ *
+ *  Created on: Sep 30, 2011
+ *      Author: heber
+ */
+#ifndef STRINGPARAMETERUNITTEST_HPP_
+#define STRINGPARAMETERUNITTEST_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string>
+
+#include <cppunit/extensions/HelperMacros.h>
+
+class StringParameterTest :  public CppUnit::TestFixture
+{
+  CPPUNIT_TEST_SUITE( StringParameterTest ) ;
+  CPPUNIT_TEST ( comparatorTest );
+  CPPUNIT_TEST ( cloneTest );
+  CPPUNIT_TEST_SUITE_END();
+
+public:
+  void setUp();
+  void tearDown();
+
+  void comparatorTest();
+  void cloneTest();
+
+};
+
+#endif /* STRINGPARAMETERUNITTEST_HPP_ */
