func TestUploadTarFile(t *testing.T) { Convey("Test Uploading a tar directory", t, func() { testData, err := testing_utils.NewTestDataContainer("testdata/copy-files", 6) So(err, ShouldBeNil) tempRemoteBasePath, err := ioutil.TempDir(os.TempDir(), "gopsexec-client-test-") So(err, ShouldBeNil) defer os.RemoveAll(tempRemoteBasePath) sessionFileSystem, err := testingGetNewSessionFileSystem() So(err, ShouldBeNil) testData.ForeachRelativeFile(func(relFile string) { localFullFilePath := filepath.Join(testData.FullDir, relFile) fullTempRemotePath := filepath.Join(tempRemoteBasePath, relFile) So(fullTempRemotePath, more_goconvey_assertions.AssertFileExistance, false) fileTarProvider := tar_io.Factories.TarProvider.File(localFullFilePath) err = sessionFileSystem.UploadTar(fileTarProvider, fullTempRemotePath, false) So(err, ShouldBeNil) So(fullTempRemotePath, more_goconvey_assertions.AssertFileExistance, true) So(testing_utils.CheckFilePropertiesEqual(localFullFilePath, fullTempRemotePath), ShouldBeNil) }) err = os.RemoveAll(tempRemoteBasePath) So(err, ShouldBeNil) So(tempRemoteBasePath, more_goconvey_assertions.AssertDirectoryExistance, false) testData.ForeachRelativeFile(func(relFile string) { fullTempRemotePath := filepath.Join(tempRemoteBasePath, relFile) So(fullTempRemotePath, more_goconvey_assertions.AssertFileExistance, false) }) }) }
func TestDownloadTarDirectory(t *testing.T) { Convey("Test Downloading a tar directory", t, func() { testDataAsMockRemote, err := testing_utils.NewTestDataContainer("testdata/copy-files", 6) So(err, ShouldBeNil) tempLocalBasePath, err := ioutil.TempDir(os.TempDir(), "gopsexec-client-test-") So(err, ShouldBeNil) defer os.RemoveAll(tempLocalBasePath) //The dir already exists due to the TempDir method testDataAsMockRemote.ForeachRelativeFile(func(relFile string) { fullTempLocalPath := filepath.Join(tempLocalBasePath, relFile) So(fullTempLocalPath, more_goconvey_assertions.AssertFileExistance, false) }) sessionFileSystem, err := testingGetNewSessionFileSystem() So(err, ShouldBeNil) tarReceiver := tar_io.Factories.TarReceiver.Dir(tempLocalBasePath) err = sessionFileSystem.DownloadTar(testDataAsMockRemote.FullDir, nil, tarReceiver) So(err, ShouldBeNil) So(tempLocalBasePath, more_goconvey_assertions.AssertDirectoryExistance, true) testDataAsMockRemote.ForeachRelativeFile(func(relFile string) { remoteFullFilePath := filepath.Join(testDataAsMockRemote.FullDir, relFile) fullTempLocalPath := filepath.Join(tempLocalBasePath, relFile) So(fullTempLocalPath, more_goconvey_assertions.AssertFileExistance, true) So(testing_utils.CheckFilePropertiesEqual(remoteFullFilePath, fullTempLocalPath), ShouldBeNil) }) err = os.RemoveAll(tempLocalBasePath) So(err, ShouldBeNil) So(tempLocalBasePath, more_goconvey_assertions.AssertDirectoryExistance, false) testDataAsMockRemote.ForeachRelativeFile(func(relFile string) { fullTempLocalPath := filepath.Join(tempLocalBasePath, relFile) So(fullTempLocalPath, more_goconvey_assertions.AssertFileExistance, false) }) }) }