hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SphinxResultJSONConvertorTest.cpp
Go to the documentation of this file.
1 /*
2  * SphinxResultJSONConvertorTest.cpp
3  *
4  * Created on: May 21, 2013
5  * Author: igor
6  */
7 #include <gtest/gtest.h>
11 
12 using namespace HCE::sphinx;
13 using namespace HCE::sphinx::reduce_task;
14 using namespace HCE::reduce;
15 using namespace Poco;
16 
17 class SphinxResultJSONConvertorTest: public ::testing::Test{
18  protected:
19  virtual void SetUp(){
20  query = "query";
21  totalRes = 4;
22  totalFound = 10;
23  time = 12;
24  WordInfo word1 = WordInfo("word1", 10, 3);
25  WordInfo word2 = WordInfo("word2", 1, 1);
26 
27  SphinxMatchInfo sphinxMatchInfo1 = buildSimpleMatchInfo(7LLU, 111LLU);
28  SphinxMatchInfo sphinxMatchInfo2 = buildSimpleMatchInfo(9LLU, 222LLU);
29 
30  AttrInfo pAttrInfo1("first", "value");
31 
32  sphinxMatchInfo1.addAttrInfo(pAttrInfo1);
33  sphinxMatchInfo2.addAttrInfo(pAttrInfo1);
34 
35  SphinxRequestInfo sphinxRequestInfo;
36  sphinxRequestInfo.setQuery(query);
37  sphinxRequestInfo.setTotal(totalRes);
38  sphinxRequestInfo.setTotalFound(totalFound);
39  sphinxRequestInfo.setTimeMsec(time);
40  sphinxRequestInfo.addWordInfo(word1);
41  sphinxRequestInfo.addWordInfo(word2);
42 
43  sphinxResultData.assign(new SphinxResultData());
44  sphinxResultData->addMatchInfo(sphinxMatchInfo1);
45  sphinxResultData->addMatchInfo(sphinxMatchInfo2);
46  sphinxResultData->addRequestInfo(sphinxRequestInfo);
47  }
48  static string query;
49  static int totalRes;
50  static int totalFound;
51  static int time;
52  SharedPtr<SphinxResultData> sphinxResultData;
53 };
58 
59 TEST_F(SphinxResultJSONConvertorTest, createSphinxResulDatatFromJSONString)
60 {
61  SphinxResultJSONConvertor sphinxResultJSONConvertor;
62 
63  string json = buildInputJSONFromSphinxResultData(*sphinxResultData.get());
64 
65 
66  SharedPtr<SphinxResultData> builtSphinxResult =
67  sphinxResultJSONConvertor.convertToSphinxResultDataFrom(json);
68 
69  ASSERT_TRUE(isEqualSphinxResultData(*sphinxResultData.get(), *builtSphinxResult.get()));
70 }
71 
72 
73 TEST_F(SphinxResultJSONConvertorTest, createJSONFromSphinxResultData)
74 {
75  SphinxResultJSONConvertor sphinxResultJSONConvertor;
76 
77  string etalonJson = buildOutputJSONFromSphinxResultData(*sphinxResultData.get());
78 
79  string builtJSON = sphinxResultJSONConvertor.convertToJSONFrom(sphinxResultData);
80 
81  ASSERT_EQ(etalonJson, builtJSON);
82 }
83 
84 
85 TEST_F(SphinxResultJSONConvertorTest, throwWrongJSONStructureExceptionWhileParsingWrongJSONFormat)
86 {
87  SphinxResultJSONConvertor sphinxResultJSONConvertor;
88  string wrongStructuredJSON = "wrong structure";
89 
90  ASSERT_THROW(sphinxResultJSONConvertor.convertToSphinxResultDataFrom(wrongStructuredJSON),
92 }
93