2022-01-07 23:41:31 +01:00
|
|
|
package backive
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
func TestFindBackupsForDevice(t *testing.T) {
|
|
|
|
var testBackups = Backups{}
|
|
|
|
|
|
|
|
testBackups["backup1"] = &Backup{
|
|
|
|
Name: "backup1",
|
|
|
|
TargetDevice: "dev1",
|
|
|
|
}
|
|
|
|
testBackups["backup2"] = &Backup{
|
|
|
|
Name: "backup2",
|
|
|
|
TargetDevice: "dev1",
|
|
|
|
}
|
|
|
|
testBackups["backup3"] = &Backup{
|
|
|
|
Name: "backup3",
|
|
|
|
TargetDevice: "dev2",
|
|
|
|
}
|
|
|
|
|
|
|
|
var testDevice = Device{
|
|
|
|
Name: "dev1",
|
|
|
|
}
|
|
|
|
bkps, found := testBackups.FindBackupsForDevice(testDevice)
|
|
|
|
|
|
|
|
if !found {
|
|
|
|
t.Log("found has to be true")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
if len(bkps) != 2 {
|
|
|
|
t.Log("Length of the returned backup slice has to be 2")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
for _, b := range bkps {
|
|
|
|
if b.TargetDevice != testDevice.Name {
|
|
|
|
t.Log("All resulting elements of the returned slice have to have the questioned device as TargetDevice!")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
2022-01-08 11:13:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestCanRun(t *testing.T) {
|
|
|
|
var bkpTargetPathMissing = Backup{
|
|
|
|
Name: "targetPathMissing",
|
|
|
|
ScriptPath: "Somethingsomething",
|
|
|
|
}
|
|
|
|
err := bkpTargetPathMissing.CanRun()
|
|
|
|
if err == nil {
|
|
|
|
t.Log("Missing targetPath has to fail function 'CanRun()'")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
|
|
|
|
var bkpScriptPathMissing = Backup{
|
|
|
|
Name: "scriptPathMissing",
|
|
|
|
TargetPath: "somethingsomething",
|
|
|
|
}
|
|
|
|
err = bkpScriptPathMissing.CanRun()
|
|
|
|
if err == nil {
|
|
|
|
t.Log("Missing scriptPath has to fail function 'CanRun()'")
|
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
|
|
|
|
var bkpFrequencyZero = Backup{
|
|
|
|
Name: "testFrequencyZero",
|
|
|
|
TargetPath: "somewhere",
|
|
|
|
ScriptPath: "somehwere_else",
|
|
|
|
Frequency: 0,
|
|
|
|
}
|
|
|
|
var bkpFrequencySeven = Backup{
|
|
|
|
Name: "testFrequencySeven",
|
|
|
|
TargetPath: "somewhere",
|
|
|
|
ScriptPath: "somewhere_else",
|
|
|
|
Frequency: 7,
|
|
|
|
}
|
|
|
|
database.Load()
|
|
|
|
runs.Load(database)
|
|
|
|
runs.RegisterRun(&bkpFrequencyZero)
|
|
|
|
err = bkpFrequencyZero.CanRun()
|
|
|
|
if err != nil {
|
|
|
|
t.Log("Frequency zero can be executed anytime.")
|
|
|
|
t.Fail()
|
|
|
|
}
|
2022-01-07 23:41:31 +01:00
|
|
|
|
2022-01-08 11:13:05 +01:00
|
|
|
runs.RegisterRun(&bkpFrequencySeven)
|
|
|
|
err = bkpFrequencySeven.CanRun()
|
|
|
|
if err == nil {
|
|
|
|
t.Log("Frequency 7 must give an error about not having reached the interval")
|
|
|
|
t.Fail()
|
|
|
|
}
|
2022-01-07 23:41:31 +01:00
|
|
|
}
|
2022-01-08 11:14:38 +01:00
|
|
|
|
|
|
|
func testPrepareRun() {
|
|
|
|
/*
|
|
|
|
Need to mock:
|
|
|
|
- config.Settings.SystemMountPoint (to local test directory)
|
|
|
|
- config.Settings.LogLocation (to local test directory)
|
|
|
|
- exec.Command! (to NOT really execute something)
|
|
|
|
|
|
|
|
*/
|
|
|
|
}
|