Skip to content

Commit e0649e7

Browse files
committed
Add some unit tests
1 parent 6750efd commit e0649e7

File tree

5 files changed

+482
-3
lines changed

5 files changed

+482
-3
lines changed

collector/lib/CollectorConfig.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <shared_mutex>
77
#include <vector>
88

9+
#include <gtest/gtest_prod.h>
910
#include <json/json.h>
1011
#include <yaml-cpp/yaml.h>
1112

@@ -191,6 +192,8 @@ class CollectorConfig {
191192
}
192193

193194
protected:
195+
FRIEND_TEST(SensorClientFormatterTest, NoProcessArguments);
196+
194197
int scrape_interval_;
195198
CollectionMethod collection_method_;
196199
bool turn_off_scrape_;

collector/lib/CollectorOutput.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,16 @@ class CollectorOutput {
2626

2727
~CollectorOutput() {
2828
stream_interrupted_.notify_one();
29-
thread_.Stop();
29+
if (thread_.running()) {
30+
thread_.Stop();
31+
}
32+
}
33+
34+
// Constructor for tests
35+
CollectorOutput(std::unique_ptr<ISensorClient>&& sensor_client,
36+
std::unique_ptr<ISignalServiceClient>&& signal_client) {
37+
sensor_clients_.emplace_back(std::move(sensor_client));
38+
signal_clients_.emplace_back(std::move(signal_client));
3039
}
3140

3241
SignalHandler::Result SendMsg(const MessageType& msg);

collector/lib/SensorClientFormatter.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class SensorClientFormatter : public ProtoSignalFormatter<sensor::MsgFromCollect
4444
void GetProcessLineage(sinsp_threadinfo* tinfo, std::vector<LineageInfo>& lineage);
4545

4646
private:
47-
FRIEND_TEST(ProcessSignalFormatterTest, NoProcessArguments);
48-
FRIEND_TEST(ProcessSignalFormatterTest, ProcessArguments);
47+
FRIEND_TEST(SensorClientFormatterTest, NoProcessArguments);
48+
FRIEND_TEST(SensorClientFormatterTest, ProcessArguments);
4949

5050
ProcessSignal* CreateProcessSignal(sinsp_evt* event);
5151
Signal* CreateSignal(sinsp_evt* event);
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#include <gmock/gmock.h>
2+
#include <gtest/gtest.h>
3+
4+
#include "internalapi/sensor/collector_iservice.pb.h"
5+
6+
#include "CollectorOutput.h"
7+
#include "SensorClient.h"
8+
#include "SignalServiceClient.h"
9+
10+
namespace collector {
11+
class MockSensorClient : public ISensorClient {
12+
public:
13+
MOCK_METHOD(bool, Refresh, ());
14+
MOCK_METHOD(SignalHandler::Result, SendMsg, (const sensor::MsgFromCollector&));
15+
};
16+
17+
class MockSignalClient : public ISignalServiceClient {
18+
public:
19+
MOCK_METHOD(bool, Refresh, ());
20+
MOCK_METHOD(SignalHandler::Result, PushSignals, (const sensor::SignalStreamMessage&));
21+
};
22+
23+
class CollectorOutputTest : public testing::Test {
24+
public:
25+
CollectorOutputTest()
26+
: sensor_client(std::make_unique<MockSensorClient>()),
27+
signal_client(std::make_unique<MockSignalClient>()) {}
28+
29+
protected:
30+
std::unique_ptr<MockSensorClient> sensor_client;
31+
std::unique_ptr<MockSignalClient> signal_client;
32+
};
33+
34+
TEST_F(CollectorOutputTest, Register) {
35+
EXPECT_CALL(*sensor_client, SendMsg).Times(1).WillOnce(testing::Return(SignalHandler::PROCESSED));
36+
37+
CollectorOutput output{std::move(sensor_client), std::move(signal_client)};
38+
output.Register();
39+
}
40+
41+
TEST_F(CollectorOutputTest, SensorClient) {
42+
sensor::MsgFromCollector msg;
43+
44+
EXPECT_CALL(*sensor_client, SendMsg).Times(1).WillOnce(testing::Return(SignalHandler::PROCESSED));
45+
46+
CollectorOutput output{std::move(sensor_client), std::move(signal_client)};
47+
auto result = output.SendMsg(msg);
48+
49+
EXPECT_EQ(result, SignalHandler::PROCESSED);
50+
}
51+
52+
TEST_F(CollectorOutputTest, SignalClient) {
53+
sensor::SignalStreamMessage msg;
54+
55+
EXPECT_CALL(*signal_client, PushSignals).Times(1).WillOnce(testing::Return(SignalHandler::PROCESSED));
56+
57+
CollectorOutput output{std::move(sensor_client), std::move(signal_client)};
58+
59+
auto result = output.SendMsg(msg);
60+
61+
EXPECT_EQ(result, SignalHandler::PROCESSED);
62+
}
63+
} // namespace collector

0 commit comments

Comments
 (0)