TEST(Descriptor, WriteAndReadSucceedsForValidDescriptor) { Descriptor expected; expected.num_partitions = 1; expected.map_type = Descriptor::TYPE_MAP; ASSERT_NO_THROW(expected.writeToDirectory(TMPDIR)); Descriptor actual = Descriptor::readFromDirectory(TMPDIR); ASSERT_EQ(expected.map_type, actual.map_type); ASSERT_EQ(expected.num_partitions, actual.num_partitions); ASSERT_EQ(expected.major_version, actual.major_version); ASSERT_EQ(expected.minor_version, actual.minor_version); expected.map_type = Descriptor::TYPE_IMMUTABLE_MAP; ASSERT_NO_THROW(expected.writeToDirectory(TMPDIR)); actual = Descriptor::readFromDirectory(TMPDIR); ASSERT_EQ(expected.map_type, actual.map_type); ASSERT_EQ(expected.num_partitions, actual.num_partitions); ASSERT_EQ(expected.major_version, actual.major_version); ASSERT_EQ(expected.minor_version, actual.minor_version); }
TEST(Descriptor, TryReadReturnsTrueIfDirectoryContainsDescriptor) { Descriptor descriptor; descriptor.num_partitions = 1; descriptor.map_type = Descriptor::TYPE_MAP; descriptor.writeToDirectory(TMPDIR); Descriptor read_descriptor; ASSERT_TRUE(Descriptor::tryReadFromDirectory(TMPDIR, &read_descriptor)); ASSERT_EQ(descriptor.map_type, read_descriptor.map_type); ASSERT_EQ(descriptor.num_partitions, read_descriptor.num_partitions); ASSERT_EQ(descriptor.major_version, read_descriptor.major_version); ASSERT_EQ(descriptor.minor_version, read_descriptor.minor_version); }
TEST(Descriptor, WriteThrowsIfMapTypeIsZero) { Descriptor descriptor; descriptor.map_type = 0; ASSERT_THROW(descriptor.writeToDirectory(TMPDIR), mt::AssertionError); }
TEST(Descriptor, WriteThrowsIfNumPartitionsIsZero) { Descriptor descriptor; descriptor.num_partitions = 0; ASSERT_THROW(descriptor.writeToDirectory(TMPDIR), mt::AssertionError); }