def test_execute_statement_with_expected_result_type_of_update_count_when_rows_are_expected(
        self, ):
        self._populate_map()
        statement = SqlStatement("SELECT * FROM %s" % self.map_name)
        statement.expected_result_type = SqlExpectedResultType.UPDATE_COUNT
        result = self.client.sql.execute_statement(statement)

        with self.assertRaises(HazelcastSqlError):
            for _ in result:
                pass
    def test_execute_statement_with_expected_result_type_of_rows_when_rows_are_expected(
            self):
        entry_count = 100
        self._populate_map(entry_count, lambda v: Student(v, v))
        statement = SqlStatement("SELECT age FROM %s WHERE age < 3" %
                                 self.map_name)
        statement.expected_result_type = SqlExpectedResultType.ROWS
        result = self.client.sql.execute_statement(statement)

        six.assertCountEqual(self, [i for i in range(3)],
                             [row.get_object("age") for row in result])
    def test_statement_expected_result_type(self):
        valid_inputs = [
            SqlExpectedResultType.ROWS,
            SqlExpectedResultType.UPDATE_COUNT,
            "ROWS",
            "ANY",
        ]

        for valid in valid_inputs:
            statement = SqlStatement("something")
            statement.expected_result_type = valid
            self.assertEqual(
                try_to_get_enum_value(valid, SqlExpectedResultType),
                statement.expected_result_type)

        invalid_inputs = [None, 123, "hey"]

        for invalid in invalid_inputs:
            with self.assertRaises(TypeError):
                statement = SqlStatement("something")
                statement.expected_result_type = invalid