github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/synchronization/version_test.go (about) 1 package synchronization 2 3 import ( 4 "testing" 5 6 "github.com/mutagen-io/mutagen/pkg/synchronization/core" 7 ) 8 9 // supportedSessionVersions defines the supported session versions that should 10 // be used in testing. It should be updated as new versions are added. 11 var supportedSessionVersions = []Version{ 12 Version_Version1, 13 } 14 15 // TestSupportedVersions verifies that session version support is as expected. 16 func TestSupportedVersions(t *testing.T) { 17 // Set up test cases. 18 testCases := []struct { 19 version Version 20 expected bool 21 }{ 22 {Version_Invalid, false}, 23 {Version_Version1, true}, 24 {Version_Version1 + 1, false}, 25 } 26 27 // Process test cases. 28 for _, testCase := range testCases { 29 if supported := testCase.version.Supported(); supported != testCase.expected { 30 t.Errorf( 31 "session version (%s) support does not match expected: %t != %t", 32 testCase.version, 33 supported, 34 testCase.expected, 35 ) 36 } 37 } 38 } 39 40 // TestDefaultWatchPollingIntervalNonZero verifies that 41 // DefaultWatchPollingInterval results are non-zero, which is required for watch 42 // operations. 43 func TestDefaultWatchPollingIntervalNonZero(t *testing.T) { 44 for _, version := range supportedSessionVersions { 45 if version.DefaultWatchPollingInterval() == 0 { 46 t.Error("zero-valued default watch polling interval") 47 } 48 } 49 } 50 51 // TestDefaultFileModeValid verifies that DefaultFileMode results are valid for 52 // use in the default permissions mode. 53 func TestDefaultFileModeValid(t *testing.T) { 54 for _, version := range supportedSessionVersions { 55 if err := core.EnsureDefaultFileModeValid( 56 version.DefaultPermissionsMode(), 57 version.DefaultFileMode(), 58 ); err != nil { 59 t.Error("invalid default file mode:", err) 60 } 61 } 62 } 63 64 // TestDefaultDirectoryModeValid verifies that DefaultDirectoryMode results are 65 // valid for use in the default permissions mode. 66 func TestDefaultDirectoryModeValid(t *testing.T) { 67 for _, version := range supportedSessionVersions { 68 if err := core.EnsureDefaultDirectoryModeValid( 69 version.DefaultPermissionsMode(), 70 version.DefaultDirectoryMode(), 71 ); err != nil { 72 t.Error("invalid default directory mode:", err) 73 } 74 } 75 } 76 77 // TODO: Implement additional tests.