19
19
#include <libusermetricsinput/usermetricsinput.h>
20
#include <libusermetricscommon/UserMetricsInterface.h>
21
#include <libusermetricscommon/UserDataInterface.h>
22
#include <libusermetricscommon/DataSetInterface.h>
23
#include <libusermetricscommon/DataSourceInterface.h>
24
#include <libusermetricscommon/DBusPaths.h>
26
#include <testutils/DBusTest.h>
27
#include <testutils/QVariantListPrinter.h>
21
29
#include <gtest/gtest.h>
22
30
#include <gmock/gmock.h>
25
32
using namespace testing;
33
using namespace UserMetricsCommon;
34
using namespace UserMetricsTestUtils;
29
class TestUserMetricInputCAPI: public Test {
38
class TestUserMetricInputCAPI: public DBusTest {
31
40
TestUserMetricInputCAPI() {
38
TEST_F(TestUserMetricInputCAPI, Foo) {
47
TEST_F(TestUserMetricInputCAPI, TestNothingYet) {
48
QByteArray byteArray(bus.toUtf8());
49
setenv("DBUS_SYSTEM_BUS_ADDRESS", byteArray.data(), true);
39
51
UserMetricsInputMetricManager metricManager =
40
52
usermetricsinput_metricmanager_new();
42
54
UserMetricsInputMetric metric = usermetricsinput_metricmanager_add(
43
metricManager, "data-source-id", "format string %1");
55
metricManager, "data-source-id-capi", "format string c-api %1");
45
57
UserMetricsInputMetricUpdate metricUpdate = usermetricsinput_metric_update(
58
metric, "username_capi");
47
59
usermetricsinput_metricupdate_add_data(metricUpdate, 1.0);
48
60
usermetricsinput_metricupdate_add_null(metricUpdate);
49
61
usermetricsinput_metricupdate_add_data(metricUpdate, 0.1);
50
62
usermetricsinput_metricupdate_delete(metricUpdate);
52
64
usermetricsinput_metricmanager_delete(metricManager);
66
com::canonical::UserMetrics userMetricsInterface(DBusPaths::serviceName(),
67
DBusPaths::userMetrics(), *connection);
70
QList<QDBusObjectPath> dataSources = userMetricsInterface.dataSources();
71
EXPECT_EQ(1, dataSources.size());
72
ASSERT_EQ(DBusPaths::dataSource(1), dataSources.first().path());
75
com::canonical::usermetrics::DataSource dataSourceInterface(
76
DBusPaths::serviceName(), DBusPaths::dataSource(1), *connection);
77
EXPECT_EQ(QString("data-source-id-capi"), dataSourceInterface.name());
78
EXPECT_EQ(QString("format string c-api %1"),
79
dataSourceInterface.formatString());
81
com::canonical::usermetrics::UserData userDataInterface(
82
DBusPaths::serviceName(), DBusPaths::userData(1), *connection);
83
EXPECT_EQ(QString("username_capi"), userDataInterface.username());
85
com::canonical::usermetrics::DataSet dataSetInterface(
86
DBusPaths::serviceName(), DBusPaths::dataSet(1), *connection);
87
QVariantList data(dataSetInterface.data());
88
ASSERT_EQ(3, data.size());
89
EXPECT_FLOAT_EQ(1.0, data.at(0).toDouble());
90
EXPECT_EQ(QString(""), data.at(1).toString());
91
EXPECT_FLOAT_EQ(0.1, data.at(2).toDouble());