comparison UnitTestsSources/MultiThreadingTests.cpp @ 2872:9d08edde614b

Possibility to restrict the allowed DICOM commands for each modality
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Oct 2018 14:19:48 +0200
parents 6eebc2eb3168
children 22524fd06225
comparison
equal deleted inserted replaced
2871:6eebc2eb3168 2872:9d08edde614b
1873 { 1873 {
1874 Json::Value s; 1874 Json::Value s;
1875 1875
1876 { 1876 {
1877 RemoteModalityParameters modality; 1877 RemoteModalityParameters modality;
1878 ASSERT_FALSE(modality.IsAdvancedFormatNeeded());
1878 modality.Serialize(s, false); 1879 modality.Serialize(s, false);
1879 ASSERT_EQ(Json::arrayValue, s.type()); 1880 ASSERT_EQ(Json::arrayValue, s.type());
1880 } 1881 }
1881 1882
1882 { 1883 {
1883 RemoteModalityParameters modality(s); 1884 RemoteModalityParameters modality(s);
1884 ASSERT_EQ("ORTHANC", modality.GetApplicationEntityTitle()); 1885 ASSERT_EQ("ORTHANC", modality.GetApplicationEntityTitle());
1885 ASSERT_EQ("127.0.0.1", modality.GetHost()); 1886 ASSERT_EQ("127.0.0.1", modality.GetHost());
1886 ASSERT_EQ(104u, modality.GetPortNumber()); 1887 ASSERT_EQ(104u, modality.GetPortNumber());
1887 ASSERT_EQ(ModalityManufacturer_Generic, modality.GetManufacturer()); 1888 ASSERT_EQ(ModalityManufacturer_Generic, modality.GetManufacturer());
1889 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Echo));
1890 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Find));
1891 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Get));
1892 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Store));
1893 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Move));
1888 } 1894 }
1889 1895
1890 s = Json::nullValue; 1896 s = Json::nullValue;
1891 1897
1892 { 1898 {
1893 RemoteModalityParameters modality; 1899 RemoteModalityParameters modality;
1894 ASSERT_FALSE(modality.IsAdvancedFormatNeeded()); 1900 ASSERT_FALSE(modality.IsAdvancedFormatNeeded());
1901 ASSERT_THROW(modality.SetPortNumber(0), OrthancException);
1902 ASSERT_THROW(modality.SetPortNumber(65535), OrthancException);
1895 modality.SetApplicationEntityTitle("HELLO"); 1903 modality.SetApplicationEntityTitle("HELLO");
1896 modality.SetHost("world"); 1904 modality.SetHost("world");
1897 modality.SetPortNumber(45); 1905 modality.SetPortNumber(45);
1898 modality.SetManufacturer(ModalityManufacturer_Dcm4Chee); 1906 modality.SetManufacturer(ModalityManufacturer_Dcm4Chee);
1899 modality.Serialize(s, true); 1907 modality.Serialize(s, true);
1904 RemoteModalityParameters modality(s); 1912 RemoteModalityParameters modality(s);
1905 ASSERT_EQ("HELLO", modality.GetApplicationEntityTitle()); 1913 ASSERT_EQ("HELLO", modality.GetApplicationEntityTitle());
1906 ASSERT_EQ("world", modality.GetHost()); 1914 ASSERT_EQ("world", modality.GetHost());
1907 ASSERT_EQ(45u, modality.GetPortNumber()); 1915 ASSERT_EQ(45u, modality.GetPortNumber());
1908 ASSERT_EQ(ModalityManufacturer_Dcm4Chee, modality.GetManufacturer()); 1916 ASSERT_EQ(ModalityManufacturer_Dcm4Chee, modality.GetManufacturer());
1917 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Echo));
1918 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Find));
1919 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Get));
1920 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Store));
1921 ASSERT_TRUE(modality.IsRequestAllowed(DicomRequestType_Move));
1909 } 1922 }
1910 1923
1911 s["Port"] = "46"; 1924 s["Port"] = "46";
1912 1925
1913 { 1926 {
1914 RemoteModalityParameters modality(s); 1927 RemoteModalityParameters modality(s);
1915 ASSERT_EQ(46u, modality.GetPortNumber()); 1928 ASSERT_EQ(46u, modality.GetPortNumber());
1916 } 1929 }
1917 } 1930
1931 s["Port"] = -1; ASSERT_THROW(RemoteModalityParameters m(s), OrthancException);
1932 s["Port"] = 65535; ASSERT_THROW(RemoteModalityParameters m(s), OrthancException);
1933 s["Port"] = "nope"; ASSERT_THROW(RemoteModalityParameters m(s), OrthancException);
1934
1935 std::set<DicomRequestType> operations;
1936 operations.insert(DicomRequestType_Echo);
1937 operations.insert(DicomRequestType_Find);
1938 operations.insert(DicomRequestType_Get);
1939 operations.insert(DicomRequestType_Move);
1940 operations.insert(DicomRequestType_Store);
1941
1942 ASSERT_EQ(5u, operations.size());
1943
1944 for (std::set<DicomRequestType>::const_iterator
1945 it = operations.begin(); it != operations.end(); ++it)
1946 {
1947 {
1948 RemoteModalityParameters modality;
1949 modality.SetRequestAllowed(*it, false);
1950 ASSERT_TRUE(modality.IsAdvancedFormatNeeded());
1951
1952 modality.Serialize(s, false);
1953 ASSERT_EQ(Json::objectValue, s.type());
1954 }
1955
1956 {
1957 RemoteModalityParameters modality(s);
1958
1959 ASSERT_FALSE(modality.IsRequestAllowed(*it));
1960
1961 for (std::set<DicomRequestType>::const_iterator
1962 it2 = operations.begin(); it2 != operations.end(); ++it2)
1963 {
1964 if (*it2 != *it)
1965 {
1966 ASSERT_TRUE(modality.IsRequestAllowed(*it2));
1967 }
1968 }
1969 }
1970 }
1971 }