(t *testing.T)
| 47 | } |
| 48 | |
| 49 | func TestObject_DownloadObject(t *testing.T) { |
| 50 | f, err := os.CreateTemp("", t.Name()) |
| 51 | assert.NoError(t, err) |
| 52 | assert.NotNil(t, f) |
| 53 | fmt.Println("-->tempfile", f.Name()) |
| 54 | |
| 55 | sto, err := store.NewBoltHold(f.Name()) |
| 56 | assert.NoError(t, err) |
| 57 | assert.NotNil(t, sto) |
| 58 | |
| 59 | nod, err := node.NewNode(sto) |
| 60 | assert.NoError(t, err) |
| 61 | assert.NotNil(t, nod) |
| 62 | |
| 63 | content := []byte("test") |
| 64 | dir := t.TempDir() |
| 65 | fmt.Println("-->tempdir", dir) |
| 66 | file1 := filepath.Join(dir, "file1") |
| 67 | os.WriteFile(file1, content, 0644) |
| 68 | |
| 69 | var responses []*mock.Response |
| 70 | for i := 0; i < 34; i++ { |
| 71 | responses = append(responses, mock.NewResponse(200, content)) |
| 72 | } |
| 73 | assert.NoError(t, err) |
| 74 | objMs := mock.NewServer(nil, responses...) |
| 75 | assert.NotNil(t, objMs) |
| 76 | defer objMs.Close() |
| 77 | |
| 78 | cc := http.ClientConfig{} |
| 79 | err = utils.UnmarshalYAML(nil, &cc) |
| 80 | assert.NoError(t, err) |
| 81 | cc.Address = objMs.URL |
| 82 | cc.CA = "./testcert/ca.pem" |
| 83 | cc.Key = "./testcert/client.key" |
| 84 | cc.Cert = "./testcert/client.pem" |
| 85 | cc.InsecureSkipVerify = true |
| 86 | |
| 87 | //syn, err := NewSync(sc, sto, nod) |
| 88 | ops, err := cc.ToClientOptions() |
| 89 | assert.NoError(t, err) |
| 90 | cli := http.NewClient(ops) |
| 91 | |
| 92 | md5, _ := utils.CalculateFileMD5(file1) |
| 93 | obj := &specv1.ConfigurationObject{ |
| 94 | URL: objMs.URL, |
| 95 | MD5: md5, |
| 96 | } |
| 97 | // already exist |
| 98 | err = downloadObject(cli, obj, dir, file1, "") |
| 99 | assert.NoError(t, err) |
| 100 | |
| 101 | // normal download |
| 102 | file2 := filepath.Join(dir, "file2") |
| 103 | err = downloadObject(cli, obj, dir, file2, "") |
| 104 | assert.NoError(t, err) |
| 105 | |
| 106 | // invalid url |
nothing calls this directly
no test coverage detected