/* * Copyright (C) 2015 ScyllaDB */ /* * This file is part of Scylla. * * Scylla is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Scylla 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 Scylla. If not, see . */ #pragma once #include "transport/messages/result_message_base.hh" #include "bytes.hh" #include #include class rows_assertions { shared_ptr _rows; public: rows_assertions(shared_ptr rows); rows_assertions with_size(size_t size); rows_assertions is_empty(); rows_assertions is_not_empty(); rows_assertions with_row(std::initializer_list values); // Verifies that the result has the following rows and only that rows, in that order. rows_assertions with_rows(std::initializer_list> rows); // Verifies that the result has the following rows and only those rows. rows_assertions with_rows_ignore_order(std::vector> rows); rows_assertions with_serialized_columns_count(size_t columns_count); rows_assertions is_null(); rows_assertions is_not_null(); }; class result_msg_assertions { shared_ptr _msg; public: result_msg_assertions(shared_ptr msg); rows_assertions is_rows(); }; result_msg_assertions assert_that(shared_ptr msg); template void assert_that_failed(future& f) { try { f.get(); assert(f.failed()); } catch (...) { } } template void assert_that_failed(future&& f) { try { f.get(); assert(f.failed()); } catch (...) { } }