mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 14:52:55 +00:00
b51e161af5
The old `std::variant` is bad because we aren't adding a new case to `FileIngestionMethod` so much as we are defining a separate concept --- store object content addressing rather than file system object content addressing. As such, it is more correct to just create a fresh enumeration. Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#include <gtest/gtest.h>
|
|
|
|
#include "content-address.hh"
|
|
|
|
namespace nix {
|
|
|
|
/* ----------------------------------------------------------------------------
|
|
* ContentAddressMethod::parse, ContentAddressMethod::render
|
|
* --------------------------------------------------------------------------*/
|
|
|
|
TEST(ContentAddressMethod, testRoundTripPrintParse_1) {
|
|
for (ContentAddressMethod cam : {
|
|
ContentAddressMethod::Raw::Text,
|
|
ContentAddressMethod::Raw::Flat,
|
|
ContentAddressMethod::Raw::NixArchive,
|
|
ContentAddressMethod::Raw::Git,
|
|
}) {
|
|
EXPECT_EQ(ContentAddressMethod::parse(cam.render()), cam);
|
|
}
|
|
}
|
|
|
|
TEST(ContentAddressMethod, testRoundTripPrintParse_2) {
|
|
for (const std::string_view camS : {
|
|
"text",
|
|
"flat",
|
|
"nar",
|
|
"git",
|
|
}) {
|
|
EXPECT_EQ(ContentAddressMethod::parse(camS).render(), camS);
|
|
}
|
|
}
|
|
|
|
TEST(ContentAddressMethod, testParseContentAddressMethodOptException) {
|
|
EXPECT_THROW(ContentAddressMethod::parse("narwhal"), UsageError);
|
|
}
|
|
|
|
}
|