diff --git a/include/kiwixserve.h b/include/kiwixserve.h index dcf5a0642..225062b48 100644 --- a/include/kiwixserve.h +++ b/include/kiwixserve.h @@ -17,6 +17,7 @@ class KiwixServe void shutDown(); bool isRunning(); int getPort() { return m_port; } + int setPort(int port); private: std::unique_ptr mp_kiwixServe; diff --git a/src/kiwixserve.cpp b/src/kiwixserve.cpp index db44f16a5..639008e7a 100644 --- a/src/kiwixserve.cpp +++ b/src/kiwixserve.cpp @@ -68,4 +68,14 @@ bool KiwixServe::isRunning() return false; } +int KiwixServe::setPort(int port) +{ + if (port >= 1 && port <= 65535) { + m_port = port; + } else { + return -1; + } + return m_port; +} + } diff --git a/test/kiwixserve.cpp b/test/kiwixserve.cpp new file mode 100644 index 000000000..722a0c8b7 --- /dev/null +++ b/test/kiwixserve.cpp @@ -0,0 +1,18 @@ +#include "gtest/gtest.h" +#include "../include/kiwixserve.h" + +TEST(KiwixServeTest, PortTest) +{ + kiwix::KiwixServe kiwixServe("libraryPath", 8181); + EXPECT_EQ(kiwixServe.getPort(), 8181); + kiwixServe.setPort(8484); + EXPECT_EQ(kiwixServe.getPort(), 8484); + EXPECT_EQ(kiwixServe.setPort(0), -1); + EXPECT_EQ(kiwixServe.setPort(3456789), -1); +} + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/test/meson.build b/test/meson.build index 360c66d93..2a0bf621e 100644 --- a/test/meson.build +++ b/test/meson.build @@ -6,7 +6,8 @@ tests = [ 'regex', 'tagParsing', 'stringTools', - 'pathTools' + 'pathTools', + 'kiwixserve' ]