TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tb_test_provider.hpp
1 
8 #ifndef TurtleBrains_UnitTestProvider_hpp
9 #define TurtleBrains_UnitTestProvider_hpp
10 
11 #include <turtle_brains/core/tb_configuration.hpp>
12 #include <turtle_brains/core/tb_defines.hpp>
13 #include <turtle_brains/core/tb_string.hpp>
14 #include <turtle_brains/core/tb_noncopyable.hpp>
15 
16 #include <utility>
17 #include <vector>
18 
19 namespace TurtleBrains
20 {
21  namespace Core
22  {
23  namespace UnitTest
24  {
25 
26  template<typename DataType, typename ResultType> class TestProvider
27  {
28  public:
29  TestProvider(void) :
30  mIndex(0)
31  {
32  }
33 
34  void Push(const DataType& data, const ResultType& result)
35  {
36  mProvidedData.push_back(DataResultPair(data, result));
37  }
38 
39  bool Next(void)
40  {
41  if (false == IsComplete())
42  {
43  ++mIndex;
44  }
45 
46  return IsComplete();
47  }
48 
49  bool IsComplete(void) const
50  {
51  return (mIndex >= size());
52  }
53 
54  size_t size(void) const
55  {
56  return mProvidedData.size();
57  }
58 
59  const DataType& Data(void) const
60  {
61  return mProvidedData[mIndex].first;
62  }
63 
64  const DataType& Data(const size_t atIndex) const
65  {
66  return mProvidedData[atIndex].first;
67  }
68 
69  const ResultType& Result(void) const
70  {
71  return mProvidedData[mIndex].second;
72  }
73 
74  const ResultType& Result(const size_t atIndex) const
75  {
76  return mProvidedData[atIndex].second;
77  }
78 
79  private:
80  typedef std::pair<DataType, ResultType> DataResultPair;
81  std::vector<DataResultPair> mProvidedData;
82  size_t mIndex;
83  };
84 
85  }; /* namespace UnitTest */
86  }; /* namespace Core */
87 }; /* namespace TurtleBrains */
88 
89 namespace tbCore = TurtleBrains::Core;
90 
91 #endif /* TurtleBrains_UnitTestProvider_hpp */
Definition: tb_test_provider.hpp:26
Here is some information about the primary namespace.
Definition: tb_application_dialog.hpp:21
Contains core functionality for each component of the API.
Definition: tb_debug_logger.hpp:88