blob: 665e1234b009fab87b5055cde31bb2913474ab6a [file] [log] [blame]
/*
* 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 a
*
* 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 "file/open_file.h"
#include <gtest/gtest.h>
#include <string>
#include <vector>
namespace storage {
class OpenFileTest : public ::testing::Test {
protected:
void SetUp() override {
open_file_ = OpenFileFactory::alloc();
EXPECT_EQ(open_file_->init(), common::E_OK);
}
void TearDown() override {
open_file_->reset();
OpenFileFactory::free(open_file_);
}
OpenFile* open_file_;
};
TEST_F(OpenFileTest, SetFileIdAndPath) {
common::FileID file_id;
file_id.seq_ = 1;
std::string file_path = "/path/to/file";
open_file_->set_file_id_and_path(file_id, file_path);
EXPECT_EQ(open_file_->get_file_id(), file_id);
EXPECT_EQ(open_file_->get_file_path(), file_path);
}
TEST_F(OpenFileTest, BuildFrom) {
std::vector<TimeseriesTimeIndexEntry> time_index_vec = {
{common::TsID(1, 1, 1), TimeRange{10, 20}},
{common::TsID(2, 2, 2), TimeRange{30, 40}}};
EXPECT_EQ(open_file_->build_from(time_index_vec), common::E_OK);
TimeRange time_range;
EXPECT_EQ(open_file_->get_time_range(common::TsID(1, 1, 1), time_range),
common::E_OK);
EXPECT_EQ(time_range.start_time_, 10);
EXPECT_EQ(time_range.end_time_, 20);
EXPECT_EQ(open_file_->get_time_range(common::TsID(2, 2, 2), time_range),
common::E_OK);
EXPECT_EQ(time_range.start_time_, 30);
EXPECT_EQ(time_range.end_time_, 40);
}
TEST_F(OpenFileTest, Add) {
TimeRange time_range{50, 60};
common::TsID ts_id(1, 1, 1);
EXPECT_EQ(open_file_->add(ts_id, time_range), common::E_OK);
TimeRange ret_time_range;
EXPECT_EQ(open_file_->get_time_range(ts_id, ret_time_range), common::E_OK);
EXPECT_EQ(ret_time_range.start_time_, 50);
EXPECT_EQ(ret_time_range.end_time_, 60);
}
TEST_F(OpenFileTest, ContainTimeseries) {
TimeRange time_range{90, 100};
common::TsID ts_id(1, 1, 1);
open_file_->add(ts_id, time_range);
EXPECT_TRUE(open_file_->contain_timeseries(ts_id));
EXPECT_FALSE(open_file_->contain_timeseries(common::TsID(2, 2, 2)));
}
TEST_F(OpenFileTest, GetTimeRange) {
TimeRange time_range{110, 120};
common::TsID ts_id(1, 1, 1);
open_file_->add(ts_id, time_range);
TimeRange ret_time_range;
EXPECT_EQ(open_file_->get_time_range(ts_id, ret_time_range), common::E_OK);
EXPECT_EQ(ret_time_range.start_time_, 110);
EXPECT_EQ(ret_time_range.end_time_, 120);
EXPECT_EQ(open_file_->get_time_range(common::TsID(2, 2, 2), ret_time_range),
common::E_NOT_EXIST);
}
} // namespace storage