Commit 99fa0a67 authored by Gregoire Olivier's avatar Gregoire Olivier Committed by Guillaume Roguez

test: add smartools unit test

Change-Id: I6778556c3d4dbd4a7fc6afd70d27896f42b1cc4d
Reviewed-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
parent 7c4ceafe
......@@ -26,6 +26,11 @@
namespace ring {
class Smartools
{
// Use for the unit tests
#ifdef TESTING
friend class SmartoolsTest;
#endif
public:
static Smartools& getInstance();
void start(std::chrono::milliseconds refreshTimeMs);
......
......@@ -9,4 +9,4 @@ test_*
*.trs
.dirstamp
dring-sample.yml.bak
\ No newline at end of file
dring-sample.yml.bak
#test binaries
sip
dring-sample.yml.bak
......@@ -14,7 +14,13 @@ check_PROGRAMS += ut_base64
ut_base64_SOURCES = base64/base64.cpp
#
# video_input testsuite
# smartools
#
check_PROGRAMS += ut_smartools
ut_smartools_SOURCES = smartools/testSmartools.cpp
#
# video_input
#
check_PROGRAMS += ut_video_input
ut_video_input_SOURCES = media/video/testVideo_input.cpp
......
/*
* Copyright (C) 2017 Savoir-Faire Linux Inc.
* Author: Olivier Gregoire <olivier.gregoire@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <cppunit/TestAssert.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#define TESTING
#include "smartools.h"
#include "../../test_runner.h"
namespace ring {
class SmartoolsTest : public CppUnit::TestFixture {
public:
static std::string name() { return "smartools"; }
private:
void testSetLocalInformation();
void testSetRemoteInformation();
CPPUNIT_TEST_SUITE(SmartoolsTest);
CPPUNIT_TEST(testSetLocalInformation);
CPPUNIT_TEST(testSetRemoteInformation);
CPPUNIT_TEST_SUITE_END();
};
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(SmartoolsTest, SmartoolsTest::name());
template <typename Map>
bool map_compare (Map const &lhs, Map const &rhs) {
return std::equal(lhs.begin(), lhs.end(), rhs.begin());
}
void
SmartoolsTest::testSetLocalInformation()
{
std::map<std::string, std::string> localInformation;
// initialisation localInformation
localInformation["local FPS"]= "32";
localInformation["local width"]="326";
localInformation["local height"] ="532";
localInformation["remote audio codec"]= "remoteAudioCodec";
localInformation["local audio codec"]= "localAudioCodec";
localInformation["local video codec"]= "localVideoCodec";
Smartools::getInstance().setFrameRate("local", "32");
Smartools::getInstance().setResolution("local", 326, 532);
Smartools::getInstance().setRemoteAudioCodec("remoteAudioCodec");
Smartools::getInstance().setLocalAudioCodec("localAudioCodec");
Smartools::getInstance().setLocalVideoCodec("localVideoCodec");
CPPUNIT_ASSERT(map_compare(localInformation, Smartools::getInstance().information_));
// Clear information_
Smartools::getInstance().sendInfo();
CPPUNIT_ASSERT(Smartools::getInstance().information_.empty());
}
void
SmartoolsTest::testSetRemoteInformation()
{
std::map<std::string, std::string> remoteInformation;
// initialisation remoteInformation
remoteInformation["remote FPS"]= "42";
remoteInformation["remote width"]="874";
remoteInformation["remote height"] ="253";
Smartools::getInstance().setFrameRate("remote", "42");
Smartools::getInstance().setResolution("remote", 874, 253);
CPPUNIT_ASSERT(map_compare(remoteInformation, Smartools::getInstance().information_));
// Clear information_
Smartools::getInstance().sendInfo();
CPPUNIT_ASSERT(Smartools::getInstance().information_.empty());
}
} // namespace ring
RING_TEST_RUNNER(ring::SmartoolsTest::name())
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment