mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Replace singleton class MockPrefsBackend by an ordinary class
This commit is contained in:
@@ -114,8 +114,7 @@ class ImportBackendTest : public testing::Test
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
m_prefs = MockPrefsBackend::getInstance();
|
||||
ASSERT_NE(m_prefs, nullptr);
|
||||
gmock_gnc_prefs_set_backend(&m_prefs);
|
||||
m_import_acc = new MockAccount();
|
||||
m_dest_acc = new MockAccount();
|
||||
m_trans = new MockTransaction();
|
||||
@@ -136,7 +135,7 @@ protected:
|
||||
m_split->free();
|
||||
}
|
||||
|
||||
MockPrefsBackend* m_prefs;
|
||||
MockPrefsBackend m_prefs;
|
||||
MockAccount* m_import_acc;
|
||||
MockAccount* m_dest_acc;
|
||||
MockTransaction* m_trans;
|
||||
@@ -196,7 +195,7 @@ protected:
|
||||
using namespace testing;
|
||||
|
||||
// set bayesian import matching in preferences
|
||||
ON_CALL(*m_prefs, getBool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
|
||||
ON_CALL(m_prefs, getBool(StrEq(GNC_PREFS_GROUP_IMPORT), StrEq(GNC_PREF_USE_BAYES)))
|
||||
.WillByDefault(Return(true));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,46 +2,52 @@
|
||||
|
||||
#include "gmock-gnc-prefs.h"
|
||||
|
||||
PrefsBackend* prefsbackend = NULL;
|
||||
static MockPrefsBackend* prefsbackend = nullptr;
|
||||
|
||||
void
|
||||
gmock_gnc_prefs_set_backend(MockPrefsBackend *backend)
|
||||
{
|
||||
prefsbackend = backend;
|
||||
}
|
||||
|
||||
gboolean
|
||||
gnc_prefs_get_bool (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getBool(group, pref_name);
|
||||
return prefsbackend->getBool(group, pref_name);
|
||||
}
|
||||
|
||||
gint
|
||||
gnc_prefs_get_int (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getInt(group, pref_name);
|
||||
return prefsbackend->getInt(group, pref_name);
|
||||
}
|
||||
|
||||
gint64
|
||||
gnc_prefs_get_int64 (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getInt64(group, pref_name);
|
||||
return prefsbackend->getInt64(group, pref_name);
|
||||
}
|
||||
|
||||
gdouble
|
||||
gnc_prefs_get_float (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getFloat(group, pref_name);
|
||||
return prefsbackend->getFloat(group, pref_name);
|
||||
}
|
||||
|
||||
gchar *
|
||||
gnc_prefs_get_string (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getString(group, pref_name);
|
||||
return prefsbackend->getString(group, pref_name);
|
||||
}
|
||||
|
||||
gint
|
||||
gnc_prefs_get_enum (const gchar *group, const gchar *pref_name)
|
||||
{
|
||||
return ((MockPrefsBackend*)prefsbackend)->getEnum(group, pref_name);
|
||||
return prefsbackend->getEnum(group, pref_name);
|
||||
}
|
||||
|
||||
void
|
||||
gnc_prefs_get_coords (const gchar *group, const gchar *pref_name, gdouble *x, gdouble *y)
|
||||
{
|
||||
((MockPrefsBackend*)prefsbackend)->getCoords(group, pref_name, x, y);
|
||||
prefsbackend->getCoords(group, pref_name, x, y);
|
||||
}
|
||||
|
||||
@@ -6,31 +6,13 @@
|
||||
extern "C"
|
||||
{
|
||||
#include <gnc-prefs.h>
|
||||
#include <gnc-prefs-p.h>
|
||||
}
|
||||
|
||||
|
||||
// mock up for PrefsBackend (singleton class)
|
||||
class MockPrefsBackend : PrefsBackend
|
||||
// mock up class implementing preferences backend (see struct PrefBackend in gnc-prefs-p.h)
|
||||
class MockPrefsBackend
|
||||
{
|
||||
public:
|
||||
MockPrefsBackend(MockPrefsBackend const&) = delete;
|
||||
MockPrefsBackend& operator=(MockPrefsBackend const&) = delete;
|
||||
|
||||
static MockPrefsBackend* getInstance()
|
||||
{
|
||||
static MockPrefsBackend prefs; // preferences object
|
||||
|
||||
// register preferences object
|
||||
if (prefsbackend == NULL)
|
||||
prefsbackend = (PrefsBackend*)&prefs;
|
||||
|
||||
// check that preferences object is correctly registered
|
||||
EXPECT_EQ((MockPrefsBackend*)prefsbackend, &prefs);
|
||||
|
||||
return &prefs;
|
||||
}
|
||||
|
||||
MOCK_METHOD2(getBool, gboolean(const gchar *, const gchar *));
|
||||
MOCK_METHOD2(getInt, gint(const gchar *, const gchar *));
|
||||
MOCK_METHOD2(getInt64, gint64(const gchar *, const gchar *));
|
||||
@@ -38,10 +20,12 @@ public:
|
||||
MOCK_METHOD2(getString, gchar*(const gchar *, const gchar *));
|
||||
MOCK_METHOD2(getEnum, gint(const gchar *, const gchar *));
|
||||
MOCK_METHOD4(getCoords, void(const gchar *, const gchar *, gdouble *, gdouble *));
|
||||
|
||||
private:
|
||||
MockPrefsBackend() {}
|
||||
~MockPrefsBackend() {}
|
||||
};
|
||||
|
||||
/** Define a preferences backend.
|
||||
*
|
||||
* \attention Each call to this function overwrites a previously set backend.
|
||||
*/
|
||||
void gmock_gnc_prefs_set_backend(MockPrefsBackend *backend);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user