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.