From 3f0648f525ee6375f063ae2ee448ae80686a2bc6 Mon Sep 17 00:00:00 2001
From: Matt Clarke <matt.clarke@stfc.ac.uk>
Date: Wed, 23 Apr 2008 10:44:56 +0000
Subject: [PATCH] Fixed tests and added function to get algorithm names. Refs
 #81

---
 .../API/inc/MantidAPI/AlgorithmManager.h      |   7 +++----
 Code/Mantid/API/src/AlgorithmManager.cpp      |  16 ++++++++++++++++
 Code/Mantid/API/test/AlgorithmManagerTest.h   |  10 ++++++++++
 Code/Mantid/Kernel/test/LibraryManagerTest.h  |   3 +++
 Code/Mantid/UserAlgorithms/.sconsign.dblite   | Bin 22486 -> 26625 bytes
 .../UserAlgorithms/HelloWorldAlgorithm.cpp    |   2 +-
 6 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h b/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
index 33b60325a95..d0b239b8c33 100644
--- a/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
+++ b/Code/Mantid/API/inc/MantidAPI/AlgorithmManager.h
@@ -1,15 +1,12 @@
 #ifndef MANTID_KERNEL_ALGORITHMMANAGER_H_
 #define MANTID_KERNEL_ALGORITHMMANAGER_H_
 
-
-
-
-
 //----------------------------------------------------------------------
 // Includes
 //----------------------------------------------------------------------
 #include "boost/shared_ptr.hpp"
 #include <vector>
+#include <string>
 #include "MantidAPI/DllExport.h"
 #include "MantidKernel/Logger.h"
 #include "MantidKernel/SingletonHolder.h"
@@ -70,6 +67,8 @@ namespace Mantid
 			*  @return The number of registered algorithms
 			*/
 			int size() const { return regAlg.size(); }
+			
+			const std::vector<std::string> getNames() const;
 
 		private:
 			friend struct Mantid::Kernel::CreateUsingNew<AlgorithmManagerImpl>;
diff --git a/Code/Mantid/API/src/AlgorithmManager.cpp b/Code/Mantid/API/src/AlgorithmManager.cpp
index 8f99d12e568..8d862e095f2 100644
--- a/Code/Mantid/API/src/AlgorithmManager.cpp
+++ b/Code/Mantid/API/src/AlgorithmManager.cpp
@@ -40,6 +40,22 @@ namespace Mantid
     {
       return AlgorithmFactory::Instance().create(algName,version);                // Throws on fail:
     }
+    
+    /** Gets the names of all the currently available algorithms
+    *
+    *  \return A pointer to the created algorithm
+    */
+    const std::vector<std::string> AlgorithmManagerImpl::getNames() const
+    {
+	std::vector<std::string> names;
+	    
+	for (int i=0; i < regAlg.size(); ++i)
+	{
+		names.push_back(regAlg[i]->name());
+	}
+	    
+        return names;              
+    }
 
     /** Creates an instance of an algorithm
     *
diff --git a/Code/Mantid/API/test/AlgorithmManagerTest.h b/Code/Mantid/API/test/AlgorithmManagerTest.h
index 5a8cedeb13a..a56631c5b81 100644
--- a/Code/Mantid/API/test/AlgorithmManagerTest.h
+++ b/Code/Mantid/API/test/AlgorithmManagerTest.h
@@ -5,6 +5,7 @@
 
 #include "MantidAPI/Algorithm.h"
 #include <stdexcept>
+#include <vector>
 
 using namespace Mantid::API;
 
@@ -91,6 +92,15 @@ public:
     TS_ASSERT_THROWS(AlgorithmManager::Instance().create("AlgTest",3), std::runtime_error )
     TS_ASSERT_THROWS(AlgorithmManager::Instance().create("aaaaaa"), std::runtime_error )
   }
+  
+  void testGetNames()
+  {
+	AlgorithmManager::Instance().clear();
+	TS_ASSERT_THROWS_NOTHING( AlgorithmManager::Instance().create("AlgTest") );
+	TS_ASSERT_THROWS_NOTHING(AlgorithmManager::Instance().create("AlgTestSecond") );
+	std::vector<std::string> names = AlgorithmManager::Instance().getNames();
+	TS_ASSERT_EQUALS(names.size(), 2)
+  }
 
   void testClear()
   {
diff --git a/Code/Mantid/Kernel/test/LibraryManagerTest.h b/Code/Mantid/Kernel/test/LibraryManagerTest.h
index c29b4fcf081..4e6081deb24 100644
--- a/Code/Mantid/Kernel/test/LibraryManagerTest.h
+++ b/Code/Mantid/Kernel/test/LibraryManagerTest.h
@@ -2,9 +2,12 @@
 #define MANTID_LIBRARYMANAGERTEST_H_
 
 #include <iostream>
+#include <string>
+#include <vector>
 #include <cxxtest/TestSuite.h>
 
 #include "MantidAPI/FrameworkManager.h"
+#include "MantidAPI/AlgorithmManager.h"
 #include "MantidKernel/LibraryManager.h"
 #include "MantidKernel/ConfigService.h"
 
diff --git a/Code/Mantid/UserAlgorithms/.sconsign.dblite b/Code/Mantid/UserAlgorithms/.sconsign.dblite
index 250eebe26be4f2bcbb2bdf5fc587734fd2ad6ae2..d7231aa6506013b1535d060c2ef7ad744c2c74ae 100644
GIT binary patch
literal 26625
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

literal 22486
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

diff --git a/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp b/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
index 0e24535f56f..df7f0834f17 100644
--- a/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
+++ b/Code/Mantid/UserAlgorithms/HelloWorldAlgorithm.cpp
@@ -5,7 +5,7 @@ namespace Mantid
 namespace Algorithms
 {
 
-
+DECLARE_ALGORITHM(HelloWorldAlgorithm);
 
 }
 }
-- 
GitLab