blob: e61b81497804057bc2cb8ee50214938366eaa174 [file]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#include <string>
#include <gtest/gtest.h>
#include "iggy.hpp"
TEST(CompressionAlgorithmTest, ReturnsExpectedValues) {
EXPECT_EQ(iggy::CompressionAlgorithm::none().compression_algorithm_value(), "none");
EXPECT_EQ(iggy::CompressionAlgorithm::gzip().compression_algorithm_value(), "gzip");
}
TEST(IdKindTest, ReturnsExpectedValues) {
EXPECT_EQ(iggy::IdKind::numeric().id_kind_value(), "numeric");
EXPECT_EQ(iggy::IdKind::string().id_kind_value(), "string");
}
TEST(MaxTopicSizeTest, ReturnsExpectedValues) {
EXPECT_EQ(iggy::MaxTopicSize::server_default().max_topic_size(), "server_default");
EXPECT_EQ(iggy::MaxTopicSize::unlimited().max_topic_size(), "unlimited");
EXPECT_EQ(iggy::MaxTopicSize::from_bytes(0).max_topic_size(), "server_default");
EXPECT_EQ(iggy::MaxTopicSize::from_bytes(std::numeric_limits<std::uint64_t>::max()).max_topic_size(), "unlimited");
EXPECT_EQ(iggy::MaxTopicSize::from_bytes(1024).max_topic_size(), "1024");
}
TEST(PollingStrategyTest, ReturnsExpectedKindAndValue) {
const auto offset = iggy::PollingStrategy::offset(7);
EXPECT_EQ(offset.polling_strategy_kind(), "offset");
EXPECT_EQ(offset.polling_strategy_value(), 7u);
const auto timestamp = iggy::PollingStrategy::timestamp(42);
EXPECT_EQ(timestamp.polling_strategy_kind(), "timestamp");
EXPECT_EQ(timestamp.polling_strategy_value(), 42u);
const auto first = iggy::PollingStrategy::first();
EXPECT_EQ(first.polling_strategy_kind(), "first");
EXPECT_EQ(first.polling_strategy_value(), 0u);
const auto last = iggy::PollingStrategy::last();
EXPECT_EQ(last.polling_strategy_kind(), "last");
EXPECT_EQ(last.polling_strategy_value(), 0u);
const auto next = iggy::PollingStrategy::next();
EXPECT_EQ(next.polling_strategy_kind(), "next");
EXPECT_EQ(next.polling_strategy_value(), 0u);
}
TEST(ExpiryTest, ReturnsExpectedKindAndValue) {
const auto server_default = iggy::Expiry::server_default();
EXPECT_EQ(server_default.expiry_kind(), "server_default");
EXPECT_EQ(server_default.expiry_value(), 0);
const auto never_expire = iggy::Expiry::never_expire();
EXPECT_EQ(never_expire.expiry_kind(), "never_expire");
EXPECT_EQ(never_expire.expiry_value(), std::numeric_limits<std::uint64_t>::max());
const auto duration = iggy::Expiry::duration(15);
EXPECT_EQ(duration.expiry_kind(), "duration");
EXPECT_EQ(duration.expiry_value(), 15);
}
TEST(IggyExceptionTest, StoresMessage) {
const iggy::IggyException from_cstr("boom");
EXPECT_EQ(std::string(from_cstr.what()), "boom");
const std::string message = "boom2";
const iggy::IggyException from_string(message);
EXPECT_EQ(std::string(from_string.what()), message);
}