Fawkes API Fawkes Development Version
test_skill_parser.cpp
1/***************************************************************************
2 * test_skill_parser.cpp - Tests for ExecutionTimeEstimator::Skill
3 *
4 * Created: Sun 22 Dec 2019 19:23:47 CET 19:23
5 * Copyright 2019 Till Hofmann <hofmann@kbsg.rwth-aachen.de>
6 ****************************************************************************/
7
8/* This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Library General Public License for more details.
17 *
18 * Read the full text in the LICENSE.GPL file in the doc directory.
19 */
20
21#include "../execution_time_estimator.h"
22
23#include <gtest/gtest.h>
24
26
27TEST(SkillParserTest, EmptySkill)
28{
29 Skill s{""};
30 ASSERT_EQ(s.skill_name, "");
31 ASSERT_EQ(s.skill_args.size(), 0);
32}
33
34TEST(SkillParserTest, SkillWithoutArgs)
35{
36 Skill s{"say()"};
37 ASSERT_EQ(s.skill_name, "say");
38 ASSERT_EQ(s.skill_args.size(), 0);
39}
40
41TEST(SkillParserTest, SkillWithIntArg)
42{
43 Skill s{"count{i=1}"};
44 ASSERT_EQ(s.skill_name, "count");
45 ASSERT_EQ(s.skill_args.size(), 1);
46 ASSERT_EQ(s.skill_args["i"], "1");
47}
48
49TEST(SkillParserTest, SkillWithStringArg)
50{
51 Skill s("say{text='hello'}");
52 ASSERT_EQ(s.skill_name, "say");
53 ASSERT_EQ(s.skill_args.size(), 1);
54 ASSERT_EQ(s.skill_args["text"], "hello");
55 s = Skill("say{text=\"hello\"}");
56 ASSERT_EQ(s.skill_name, "say");
57 ASSERT_EQ(s.skill_args.size(), 1);
58 ASSERT_EQ(s.skill_args["text"], "hello");
59}
60
61TEST(SkillParserTest, SkillWithMultipleArgs)
62{
63 Skill s("say{text='hello', second='bye'}");
64 ASSERT_EQ(s.skill_name, "say");
65 ASSERT_EQ(s.skill_args.size(), 2);
66 ASSERT_EQ(s.skill_args["text"], "hello");
67 ASSERT_EQ(s.skill_args["second"], "bye");
68}
69
70TEST(SkillParserTest, SkillWithNewline)
71{
72 Skill s("say{text=\n\"hello\"}");
73 ASSERT_EQ(s.skill_name, "say");
74 ASSERT_EQ(s.skill_args.size(), 1);
75 ASSERT_EQ(s.skill_args["text"], "hello");
76}
Skill representation for JSON transfer.
Definition: Skill.h:29
A structured representation of a skill.