OTest2
A C++ testing framework
|
Go to the documentation of this file.
20 #ifndef OTest2__INCLUDE_OTEST2_USERDATA_H_
21 #define OTest2__INCLUDE_OTEST2_USERDATA_H_
27 #include <type_traits>
50 const std::string& name_);
70 virtual std::string
reason()
const override;
80 std::string actual_type;
81 std::string expected_type;
92 const std::string& name_,
93 const std::string& actual_,
94 const std::string& expected_);
114 virtual std::string
reason()
const override;
132 const Datum&) =
delete;
134 const Datum&) =
delete;
137 template<
typename Type_>
138 class TypedDatum :
public Datum {
146 assert(datum !=
nullptr);
150 virtual ~TypedDatum() =
default;
154 const TypedDatum&) =
delete;
156 const TypedDatum&) =
delete;
164 const std::string& name_,
165 std::unique_ptr<Datum>&& datum_);
167 const std::string& name_)
const;
194 template<
typename Type_>
196 const std::string& name_,
211 template<
typename Type_>
213 const std::string& name_)
const {
214 Datum* d_(doGetDatum(name_));
219 return td1_->getValue();
222 auto* td2_(
dynamic_cast<TypedDatum<
223 typename std::remove_cv<
226 return td2_->getValue();
~UserDataWrongTypeException()
Dtor.
UserDataMissingException(const std::string &name_)
Ctor.
UserDataWrongTypeException(const std::string &name_, const std::string &actual_, const std::string &expected_)
Ctor.
std::unique_ptr< Type_ > make_unique(Args_ &&... args_)
Replacement of the unique_ptr function missing in C++11.
An object keeping user data passed from user's custom main function.
UserDataMissingException & operator=(const UserDataMissingException &)=delete
UserDataWrongTypeException & operator=(const UserDataWrongTypeException &)=delete
An exception thrown if the expected type of a user datum is different than the actual one.
An exception thrown if user datum is missing.
~UserDataMissingException()
Dtor.
UserData & operator=(const UserData &)=delete
Generic OTest2 exception.
std::add_lvalue_reference< Type_ >::type getDatum(const std::string &name_) const
Get user datum of specified type.
virtual std::string reason() const override
Get exception reason.
virtual std::string reason() const override
Get exception reason.
void setDatum(const std::string &name_, Type_ *datum_)
Set a user datum.