Mercurial > hg > orthanc
diff UnitTestsSources/DicomMapTests.cpp @ 2863:da12ba232119
serialization of DicomMap
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 05 Oct 2018 17:49:05 +0200 |
parents | 61fdb06e389a |
children | 8265a6b56100 |
line wrap: on
line diff
--- a/UnitTestsSources/DicomMapTests.cpp Fri Oct 05 16:07:34 2018 +0200 +++ b/UnitTestsSources/DicomMapTests.cpp Fri Oct 05 17:49:05 2018 +0200 @@ -369,3 +369,43 @@ ASSERT_DOUBLE_EQ(-2147483649.0, d); ASSERT_EQ(-2147483649ll, j); } + + +TEST(DicomMap, Serialize) +{ + Json::Value s; + + { + DicomMap m; + m.SetValue(DICOM_TAG_PATIENT_NAME, "Hello", false); + m.SetValue(DICOM_TAG_STUDY_DESCRIPTION, "Binary", true); + m.SetNullValue(DICOM_TAG_SERIES_DESCRIPTION); + m.Serialize(s); + } + + { + DicomMap m; + m.Unserialize(s); + + const DicomValue* v = m.TestAndGetValue(DICOM_TAG_ACCESSION_NUMBER); + ASSERT_TRUE(v == NULL); + + v = m.TestAndGetValue(DICOM_TAG_PATIENT_NAME); + ASSERT_TRUE(v != NULL); + ASSERT_FALSE(v->IsNull()); + ASSERT_FALSE(v->IsBinary()); + ASSERT_EQ("Hello", v->GetContent()); + + v = m.TestAndGetValue(DICOM_TAG_STUDY_DESCRIPTION); + ASSERT_TRUE(v != NULL); + ASSERT_FALSE(v->IsNull()); + ASSERT_TRUE(v->IsBinary()); + ASSERT_EQ("Binary", v->GetContent()); + + v = m.TestAndGetValue(DICOM_TAG_SERIES_DESCRIPTION); + ASSERT_TRUE(v != NULL); + ASSERT_TRUE(v->IsNull()); + ASSERT_FALSE(v->IsBinary()); + ASSERT_THROW(v->GetContent(), OrthancException); + } +}