84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
#include <memory>
|
|
#include <iostream>
|
|
#include <fstream>
|
|
|
|
#include <di/Application.h>
|
|
#include <gtest/gtest.h>
|
|
|
|
using namespace Di;
|
|
using namespace std;
|
|
|
|
static int defconfCall;
|
|
static int initCall;
|
|
static int runCall;
|
|
static int stopCall;
|
|
static int appnameCall;
|
|
static int appversionCall;
|
|
|
|
class Apptest : public Application {
|
|
public:
|
|
void loadDefaultConfig(void) {
|
|
defconfCall++;
|
|
}
|
|
int init(void) {
|
|
++initCall;
|
|
return 0;
|
|
}
|
|
int run(void) {
|
|
return ++runCall;
|
|
}
|
|
void stop(void) {
|
|
stopCall++;
|
|
}
|
|
std::string getApplicationName(void) {
|
|
appnameCall++;
|
|
return "testapp";
|
|
}
|
|
|
|
std::string getApplicationVersion(void) {
|
|
appversionCall++;
|
|
return "0.0.0";
|
|
}
|
|
};
|
|
|
|
TEST(Application, dieNoFile) {
|
|
Apptest t;
|
|
EXPECT_EXIT(t.globalInit(0, nullptr), ::testing::ExitedWithCode(1), "");
|
|
EXPECT_EQ(defconfCall, 0);
|
|
EXPECT_EQ(initCall, 0);
|
|
EXPECT_EQ(runCall, 0);
|
|
EXPECT_EQ(stopCall, 0);
|
|
EXPECT_EQ(appnameCall, 0);
|
|
EXPECT_EQ(appversionCall, 0);
|
|
}
|
|
|
|
TEST(Application, dieNoCustomFile) {
|
|
Apptest t;
|
|
char *argv[] = {"appname", "configfile.conf"};
|
|
EXPECT_EXIT(t.globalInit(2, argv), ::testing::ExitedWithCode(1), "");
|
|
EXPECT_EQ(defconfCall, 0);
|
|
EXPECT_EQ(initCall, 0);
|
|
EXPECT_EQ(runCall, 0);
|
|
EXPECT_EQ(stopCall, 0);
|
|
EXPECT_EQ(appnameCall, 0);
|
|
EXPECT_EQ(appversionCall, 0);
|
|
}
|
|
|
|
TEST(Application, findCustomFile) {
|
|
Apptest t;
|
|
ofstream testFile;
|
|
system("mkdir -p /tmp/di/etc;chmod 777 /tmp/di/etc");
|
|
testFile.open("/tmp/di/etc/test_libdipp_application.json", ofstream::out);
|
|
testFile << "{}" << endl;
|
|
testFile.close();
|
|
|
|
char *argv[] = {"appname", "/tmp/di/etc/test_libdipp_application.json"};
|
|
t.globalInit(2, argv);
|
|
EXPECT_EQ(defconfCall, 1);
|
|
EXPECT_EQ(initCall, 1);
|
|
EXPECT_EQ(runCall, 0);
|
|
EXPECT_EQ(stopCall, 0);
|
|
EXPECT_EQ(appnameCall, 2);
|
|
EXPECT_EQ(appversionCall, 1);
|
|
}
|