tunit - Reference Guide  1.0.0
Modern c++17 unit testing framework on Windows, macOS, Linux, iOS and android.
base_assert.h
Go to the documentation of this file.
1 #pragma once
4 
5 #include "__demangle.h"
6 #include "__tunit_join__items.h"
7 #include "abort_error.h"
8 #include "assert_error.h"
10 #include "ignore_error.h"
11 #include "line_info.h"
12 
14 namespace tunit {
15  class base_assert {
16  public:
18  base_assert() = delete;
20 
26  static void abort() {abort("", line_info());}
27 
35  static void abort(const tunit::line_info& line_info) {abort("", line_info);}
36 
43  static void abort(const std::string& message) {abort(message, line_info());}
44 
52  static void abort(const std::string& message, const tunit::line_info& line_info);
53 
60  static void fail() {fail("", line_info());}
61 
69  static void fail(const tunit::line_info& line_info) {fail("", line_info);}
70 
78  static void fail(const std::string& message) {fail(message, line_info());}
79 
88  static void fail(const std::string& message, const tunit::line_info& line_info) {
89  base_assert::fail("", "", message, line_info);
90  }
91 
97  static void ignore() {ignore("", line_info());}
98 
106  static void ignore(const tunit::line_info& line_info) {ignore("", line_info);}
107 
114  static void ignore(const std::string& message) {ignore(message, line_info());}
115 
123  static void ignore(const std::string& message, const tunit::line_info& line_info);
124 
130  static void succeed() {succeed("", line_info_);}
131 
138  static void succeed(const tunit::line_info& line_info) {succeed("", line_info);}
139 
146  static void succeed(const std::string& message) {succeed(message, line_info_);}
147 
155  static void succeed(const std::string& message, const tunit::line_info& line_info);
156 
157  protected:
158  static void fail(const std::string& actual, const std::string& expected, const std::string& message, const tunit::line_info& line_info);
159 
160  static void error();
161 
162  static void error(const std::string& actual, const std::string& expected, const std::string& message, const tunit::line_info& line_info);
163 
164  template <typename TValue>
165  static std::string to_string(const TValue& value) {return __tunit_to_string(value);}
166 
167  template <typename TValue>
168  static std::string to_string(const TValue* value) {return __tunit_to_string(value);}
169 
170  template<typename TCollection>
171  static std::string join_items(const TCollection& collection) {return __tunit_join__items(collection);}
172 
173  static std::string join_items(const std::string& str) {return __tunit_join__items(str);}
174  };
175 }
static void succeed(const tunit::line_info &line_info)
Generates a success with a generic message.
Definition: base_assert.h:138
static void ignore()
Ignore current test.
Definition: base_assert.h:97
static void fail(const std::string &message)
Throws an tunit::assertion_error exception.
Definition: base_assert.h:78
static void succeed(const std::string &message)
Generates a success with a generic message.
Definition: base_assert.h:146
static void fail(const std::string &message, const tunit::line_info &line_info)
Throws an tunit::assertion_error exception.
Definition: base_assert.h:88
Contains tunit::assert_error exception.
Contains tunit::ignore_error exception.
static void ignore(const tunit::line_info &line_info)
Ignore current test.
Definition: base_assert.h:106
Contains tunit::line_info class.
#define line_info_
Get tunit::line_info informations.
Definition: line_info.h:75
Contains std::basic_ostream<Char, CharTraits>& operator<<(std::basic_ostream<Char, CharTraits>& os, const Type& value) function.
static void fail(const tunit::line_info &line_info)
Throws an tunit::assertion_error exception.
Definition: base_assert.h:69
static void abort()
Abort current test.
Definition: base_assert.h:26
line_info information class is used to store current file, current line and current function informat...
Definition: line_info.h:13
static void fail()
Throws an tunit::assertion_error exception.
Definition: base_assert.h:60
static void abort(const tunit::line_info &line_info)
Abort current test.
Definition: base_assert.h:35
Definition: base_assert.h:15
static void succeed()
Generates a success with a generic message.
Definition: base_assert.h:130
The tunit namespace contains a unit test library.
Definition: abort_error.h:8
static void ignore(const std::string &message)
Ignore current test.
Definition: base_assert.h:114
static void abort(const std::string &message)
Abort current test.
Definition: base_assert.h:43
Contains tunit::abort_error exception.