fromStr(data);
}
+D2Dhcid::D2Dhcid(const std::vector<uint8_t>& data)
+ : bytes_(data) {
+}
+
D2Dhcid::D2Dhcid(const isc::dhcp::DUID& duid,
const std::vector<uint8_t>& wire_fqdn) {
fromDUID(duid, wire_fqdn);
return (isc::util::encode::encodeHex(bytes_));
}
+void
+D2Dhcid::fromBytes(const std::vector<uint8_t>& data) {
+ bytes_ = data;
+}
+
void
D2Dhcid::fromDUID(const isc::dhcp::DUID& duid,
const std::vector<uint8_t>& wire_fqdn) {
/// or there is an odd number of digits.
D2Dhcid(const std::string& data);
+ /// @brief Constructor, creates new instance of the @c D2Dhcid using a
+ /// vector holding raw DHCID.
+ ///
+ /// @param data An vector holding DHCID in the raw format.
+ D2Dhcid(const std::vector<uint8_t>& data);
+
/// @brief Constructor, creates an instance of the @c D2Dhcid from the
/// @c isc::dhcp::DUID.
///
/// or there is an odd number of digits.
void fromStr(const std::string& data);
+ /// @brief Sets the DHCID value represented by raw data.
+ ///
+ /// @param data Holds the raw bytes representing DHCID.
+ void fromBytes(const std::vector<uint8_t>& data);
+
/// @brief Sets the DHCID value based on the DUID and FQDN.
///
/// This function requires that the FQDN conforms to the section 3.5
EXPECT_EQ(dhcid_ref, dhcid.toStr());
}
+// Test that DHCID is correctly created from the buffer holding DHCID data
+// in raw format.
+TEST(NameChangeRequestTest, dhcidFromBytes) {
+ // Create a buffer holding raw DHCID data.
+ std::vector<uint8_t> dhcid_data;
+ for (int i = 0; i < 64; ++i) {
+ dhcid_data.push_back(i);
+ }
+ // Construct new object and initialize it with the DHCID data.
+ D2Dhcid dhcid(dhcid_data);
+
+ // Make sure that the DHCID is valid.
+ EXPECT_TRUE(std::equal(dhcid.getBytes().begin(), dhcid.getBytes().end(),
+ dhcid_data.begin()));
+
+ // Modify the buffer and reinitialize DHCID with the new buffer.
+ for (int i = 64; i < 128; ++i) {
+ dhcid_data.push_back(i);
+ }
+ ASSERT_NO_THROW(dhcid.fromBytes(dhcid_data));
+
+ // Make sure that the DHCID is still valid.
+ EXPECT_TRUE(std::equal(dhcid.getBytes().begin(), dhcid.getBytes().end(),
+ dhcid_data.begin()));
+
+}
/// @brief Verifies the fundamentals of converting from and to JSON.
/// It verifies that: