| /* |
| * Portions copyright 2019-present Open Networking Foundation |
| * Original copyright 2019-present Ciena Corporation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package commands |
| |
| import ( |
| "bytes" |
| "github.com/opencord/cordctl/testutils" |
| "io/ioutil" |
| "testing" |
| ) |
| |
| func TestBackupCreate(t *testing.T) { |
| // use `python -m json.tool` to pretty-print json |
| expected := `[ |
| { |
| "bytes": 6, |
| "checksum": "sha256:e9c0f8b575cbfcb42ab3b78ecc87efa3b011d9a5d10b09fa4e96f240bf6a82f5", |
| "chunks": 2, |
| "status": "SUCCESS" |
| } |
| ]` |
| |
| got := new(bytes.Buffer) |
| OutputStream = got |
| |
| var options BackupOpts |
| options.Create.OutputAs = "json" |
| options.Create.Args.LocalFileName = "/tmp/transfer.down" |
| options.Create.ChunkSize = 3 |
| err := options.Create.Execute([]string{}) |
| |
| if err != nil { |
| t.Errorf("%s: Received error %v", t.Name(), err) |
| return |
| } |
| |
| testutils.AssertJSONEqual(t, got.String(), expected) |
| } |
| |
| // Mock the CreateURI function in the Restore code to use file:///tmp/transfer.up |
| func CreateURI() (string, string) { |
| remote_name := "transfer.up" |
| uri := "file:///tmp/" + remote_name |
| return remote_name, uri |
| } |
| |
| func TestBackupRestore(t *testing.T) { |
| // use `python -m json.tool` to pretty-print json |
| expected := `[ |
| { |
| "bytes": 6, |
| "checksum": "sha256:e9c0f8b575cbfcb42ab3b78ecc87efa3b011d9a5d10b09fa4e96f240bf6a82f5", |
| "chunks": 2, |
| "status": "SUCCESS" |
| } |
| ]` |
| |
| err := ioutil.WriteFile("/tmp/transfer.up", []byte("ABCDEF"), 0644) |
| |
| got := new(bytes.Buffer) |
| OutputStream = got |
| |
| var options BackupRestore |
| options.OutputAs = "json" |
| options.Args.LocalFileName = "/tmp/transfer.up" |
| options.ChunkSize = 3 |
| options.CreateURIFunc = CreateURI |
| err = options.Execute([]string{}) |
| |
| if err != nil { |
| t.Errorf("%s: Received error %v", t.Name(), err) |
| return |
| } |
| |
| testutils.AssertJSONEqual(t, got.String(), expected) |
| } |