@@ -29,6 +29,7 @@ import (
29
29
"time"
30
30
31
31
"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage"
32
+ "github.com/container-storage-interface/spec/lib/go/csi"
32
33
"github.com/stretchr/testify/assert"
33
34
"go.uber.org/mock/gomock"
34
35
"golang.org/x/sync/errgroup"
@@ -1822,3 +1823,59 @@ func TestIsSupportedFSGroupChangePolicy(t *testing.T) {
1822
1823
}
1823
1824
}
1824
1825
}
1826
+
1827
+ func TestIsReadOnlyFromCapability (t * testing.T ) {
1828
+ testCases := []struct {
1829
+ name string
1830
+ vc * csi.VolumeCapability
1831
+ expectedResult bool
1832
+ }{
1833
+ {
1834
+ name : "false with empty capabilities" ,
1835
+ vc : & csi.VolumeCapability {},
1836
+ expectedResult : false ,
1837
+ },
1838
+ {
1839
+ name : "fail with capabilities no access mode" ,
1840
+ vc : & csi.VolumeCapability {
1841
+ AccessType : & csi.VolumeCapability_Mount {
1842
+ Mount : & csi.VolumeCapability_MountVolume {},
1843
+ },
1844
+ },
1845
+ },
1846
+ {
1847
+ name : "false with SINGLE_NODE_WRITER capabilities" ,
1848
+ vc : & csi.VolumeCapability {
1849
+ AccessMode : & csi.VolumeCapability_AccessMode {
1850
+ Mode : csi .VolumeCapability_AccessMode_SINGLE_NODE_WRITER ,
1851
+ },
1852
+ },
1853
+ expectedResult : false ,
1854
+ },
1855
+ {
1856
+ name : "true with MULTI_NODE_READER_ONLY capabilities" ,
1857
+ vc : & csi.VolumeCapability {
1858
+ AccessMode : & csi.VolumeCapability_AccessMode {
1859
+ Mode : csi .VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY ,
1860
+ },
1861
+ },
1862
+ expectedResult : true ,
1863
+ },
1864
+ {
1865
+ name : "true with SINGLE_NODE_READER_ONLY capabilities" ,
1866
+ vc : & csi.VolumeCapability {
1867
+ AccessMode : & csi.VolumeCapability_AccessMode {
1868
+ Mode : csi .VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY ,
1869
+ },
1870
+ },
1871
+ expectedResult : true ,
1872
+ },
1873
+ }
1874
+
1875
+ for _ , test := range testCases {
1876
+ result := isReadOnlyFromCapability (test .vc )
1877
+ if result != test .expectedResult {
1878
+ t .Errorf ("case(%s): isReadOnlyFromCapability returned with %v, not equal to %v" , test .name , result , test .expectedResult )
1879
+ }
1880
+ }
1881
+ }
0 commit comments