def test_not_match(self):
        """test_not_match
        conditionに1つもマッチしないケースのテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age": 21}, json.loads(setting_json, "utf-8"),
                               [])
        self.assertEqual(len(result), 0)
    def test_single_condition(self):
        """test_single_condition
        1つだけ設定したconditionにマッチして正しいものを返すテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[{
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         }]
        }"""

        result = speaker.speak({"age": 62}, json.loads(setting_json, "utf-8"),
                               [])
        self.assertEqual(len(result), 1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"かっこいい歳の取り方ですね!", result[0]["serif"])

        print json.dumps(result, ensure_ascii=False)
    def test_multi_condition(self):
        """test_multi_condition
        複数のconditionからマッチしたものを正しく返すテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age": 19}, json.loads(setting_json, "utf-8"),
                               [])
        self.assertEqual(len(result), 1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"お若いですね!", result[0]["serif"])

        print json.dumps(result, ensure_ascii=False)
    def test_not_match(self):
        """test_not_match
        conditionに1つもマッチしないケースのテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age":21},json.loads(setting_json,"utf-8"),[])
        self.assertEqual(len(result),0)
    def test_multi_condition(self):
        """test_multi_condition
        複数のconditionからマッチしたものを正しく返すテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age":19},json.loads(setting_json,"utf-8"),[])
        self.assertEqual(len(result),1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"お若いですね!",result[0]["serif"])

        print json.dumps(result,ensure_ascii=False)
    def test_else_match(self):
        """test_else_match
        条件を指定しないデフォルトにマッチするテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         },
         {
          "outputs":[
           {"serif":"現役バリバリですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age": 59}, json.loads(setting_json, "utf-8"),
                               [])
        self.assertEqual(len(result), 1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"現役バリバリですね!", result[0]["serif"])

        print json.dumps(result, ensure_ascii=False)
    def test_else_match(self):
        """test_else_match
        条件を指定しないデフォルトにマッチするテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[
         {
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         },
         {
          "age":{
           "lt":20
          },
          "outputs":[
           {"serif":"お若いですね!"}
          ]
         },
         {
          "outputs":[
           {"serif":"現役バリバリですね!"}
          ]
         }
         ]
        }"""

        result = speaker.speak({"age":59},json.loads(setting_json,"utf-8"),[])
        self.assertEqual(len(result),1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"現役バリバリですね!",result[0]["serif"])

        print json.dumps(result,ensure_ascii=False)
    def test_single_condition(self):
        """test_single_condition
        1つだけ設定したconditionにマッチして正しいものを返すテスト
        """
        speaker = agespeaker.create()

        setting_json = """{
         "speaker":"age",
         "conditions":[{
          "age":{
           "gt":60
          },
          "outputs":[
           {"serif":"かっこいい歳の取り方ですね!"}
          ]
         }]
        }"""

        result = speaker.speak({"age":62},json.loads(setting_json,"utf-8"),[])
        self.assertEqual(len(result),1)
        self.assertTrue("serif" in result[0])
        self.assertEqual(u"かっこいい歳の取り方ですね!",result[0]["serif"])

        print json.dumps(result,ensure_ascii=False)
 def test_create(self):
     """test_create
     create関数でAgeSpeakerのインスタンスを取得するテスト
     """
     speaker = agespeaker.create()
     self.assertIsInstance(speaker, agespeaker.AgeSpeaker)
 def test_create(self):
     """test_create
     create関数でAgeSpeakerのインスタンスを取得するテスト
     """
     speaker = agespeaker.create()
     self.assertIsInstance(speaker,agespeaker.AgeSpeaker)