mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-09 14:50:56 +00:00
cmd/syncthing: Add mock types for API service testing
This commit is contained in:
parent
a28f890e83
commit
52c74ad866
@ -175,3 +175,23 @@ func TestDirNames(t *testing.T) {
|
|||||||
t.Errorf("Unexpected dirNames return: %#v\n%s", names, diff)
|
t.Errorf("Unexpected dirNames return: %#v\n%s", names, diff)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInstantiateAPIService(t *testing.T) {
|
||||||
|
model := new(mockedModel)
|
||||||
|
cfg := new(mockedConfig)
|
||||||
|
httpsCertFile := "../../test/h1/https-cert.pem"
|
||||||
|
httpsKeyFile := "../../test/h1/https-key.pem"
|
||||||
|
assetDir := "../../gui"
|
||||||
|
eventSub := new(mockedEventSub)
|
||||||
|
discoverer := new(mockedCachingMux)
|
||||||
|
relayService := new(mockedRelayService)
|
||||||
|
errorLog := new(mockedLoggerRecorder)
|
||||||
|
systemLog := new(mockedLoggerRecorder)
|
||||||
|
|
||||||
|
svc, err := newAPIService(protocol.LocalDeviceID, cfg, httpsCertFile, httpsKeyFile, assetDir, model,
|
||||||
|
eventSub, discoverer, relayService, errorLog, systemLog)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
_ = svc
|
||||||
|
}
|
||||||
|
44
cmd/syncthing/mocked_config_test.go
Normal file
44
cmd/syncthing/mocked_config_test.go
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/syncthing/syncthing/lib/config"
|
||||||
|
"github.com/syncthing/syncthing/lib/protocol"
|
||||||
|
)
|
||||||
|
|
||||||
|
type mockedConfig struct{}
|
||||||
|
|
||||||
|
func (c *mockedConfig) GUI() config.GUIConfiguration {
|
||||||
|
return config.GUIConfiguration{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Raw() config.Configuration {
|
||||||
|
return config.Configuration{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Options() config.OptionsConfiguration {
|
||||||
|
return config.OptionsConfiguration{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Replace(cfg config.Configuration) config.CommitResponse {
|
||||||
|
return config.CommitResponse{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Subscribe(cm config.Committer) {}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Folders() map[string]config.FolderConfiguration {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Devices() map[protocol.DeviceID]config.DeviceConfiguration {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *mockedConfig) Save() error {
|
||||||
|
return nil
|
||||||
|
}
|
52
cmd/syncthing/mocked_discovery_test.go
Normal file
52
cmd/syncthing/mocked_discovery_test.go
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/syncthing/syncthing/lib/discover"
|
||||||
|
"github.com/syncthing/syncthing/lib/protocol"
|
||||||
|
)
|
||||||
|
|
||||||
|
type mockedCachingMux struct{}
|
||||||
|
|
||||||
|
// from suture.Service
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Serve() {
|
||||||
|
select {}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Stop() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// from events.Finder
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Lookup(deviceID protocol.DeviceID) (direct []string, relays []discover.Relay, err error) {
|
||||||
|
return nil, nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Error() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) String() string {
|
||||||
|
return "mockedCachingMux"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Cache() map[protocol.DeviceID]discover.CacheEntry {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// from events.CachingMux
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) Add(finder discover.Finder, cacheTime, negCacheTime time.Duration, priority int) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedCachingMux) ChildErrors() map[string]error {
|
||||||
|
return nil
|
||||||
|
}
|
15
cmd/syncthing/mocked_events_test.go
Normal file
15
cmd/syncthing/mocked_events_test.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "github.com/syncthing/syncthing/lib/events"
|
||||||
|
|
||||||
|
type mockedEventSub struct{}
|
||||||
|
|
||||||
|
func (s *mockedEventSub) Since(id int, into []events.Event) []events.Event {
|
||||||
|
select {}
|
||||||
|
}
|
21
cmd/syncthing/mocked_logger_test.go
Normal file
21
cmd/syncthing/mocked_logger_test.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/syncthing/syncthing/lib/logger"
|
||||||
|
)
|
||||||
|
|
||||||
|
type mockedLoggerRecorder struct{}
|
||||||
|
|
||||||
|
func (r *mockedLoggerRecorder) Since(t time.Time) []logger.Line {
|
||||||
|
select {}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *mockedLoggerRecorder) Clear() {}
|
115
cmd/syncthing/mocked_model_test.go
Normal file
115
cmd/syncthing/mocked_model_test.go
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/syncthing/syncthing/lib/db"
|
||||||
|
"github.com/syncthing/syncthing/lib/protocol"
|
||||||
|
"github.com/syncthing/syncthing/lib/stats"
|
||||||
|
)
|
||||||
|
|
||||||
|
type mockedModel struct{}
|
||||||
|
|
||||||
|
func (m *mockedModel) GlobalDirectoryTree(folder, prefix string, levels int, dirsonly bool) map[string]interface{} {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) Completion(device protocol.DeviceID, folder string) float64 {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) Override(folder string) {}
|
||||||
|
|
||||||
|
func (m *mockedModel) NeedFolderFiles(folder string, page, perpage int) ([]db.FileInfoTruncated, []db.FileInfoTruncated, []db.FileInfoTruncated, int) {
|
||||||
|
return nil, nil, nil, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) NeedSize(folder string) (nfiles int, bytes int64) {
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) ConnectionStats() map[string]interface{} {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) DeviceStatistics() map[string]stats.DeviceStatistics {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) FolderStatistics() map[string]stats.FolderStatistics {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) CurrentFolderFile(folder string, file string) (protocol.FileInfo, bool) {
|
||||||
|
return protocol.FileInfo{}, false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) CurrentGlobalFile(folder string, file string) (protocol.FileInfo, bool) {
|
||||||
|
return protocol.FileInfo{}, false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) ResetFolder(folder string) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) Availability(folder, file string) []protocol.DeviceID {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) GetIgnores(folder string) ([]string, []string, error) {
|
||||||
|
return nil, nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) SetIgnores(folder string, content []string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) PauseDevice(device protocol.DeviceID) {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) ResumeDevice(device protocol.DeviceID) {}
|
||||||
|
|
||||||
|
func (m *mockedModel) DelayScan(folder string, next time.Duration) {}
|
||||||
|
|
||||||
|
func (m *mockedModel) ScanFolder(folder string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) ScanFolders() map[string]error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) ScanFolderSubs(folder string, subs []string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) BringToFront(folder, file string) {}
|
||||||
|
|
||||||
|
func (m *mockedModel) ConnectedTo(deviceID protocol.DeviceID) bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) GlobalSize(folder string) (nfiles, deleted int, bytes int64) {
|
||||||
|
return 0, 0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) LocalSize(folder string) (nfiles, deleted int, bytes int64) {
|
||||||
|
return 0, 0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) CurrentLocalVersion(folder string) (int64, bool) {
|
||||||
|
return 0, false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) RemoteLocalVersion(folder string) (int64, bool) {
|
||||||
|
return 0, false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockedModel) State(folder string) (string, time.Time, error) {
|
||||||
|
return "", time.Time{}, nil
|
||||||
|
}
|
37
cmd/syncthing/mocked_relay_test.go
Normal file
37
cmd/syncthing/mocked_relay_test.go
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (C) 2016 The Syncthing Authors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||||
|
// You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"crypto/tls"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type mockedRelayService struct{}
|
||||||
|
|
||||||
|
// from suture.Service
|
||||||
|
|
||||||
|
func (s *mockedRelayService) Serve() {
|
||||||
|
select {}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *mockedRelayService) Stop() {
|
||||||
|
}
|
||||||
|
|
||||||
|
// from relay.Service
|
||||||
|
|
||||||
|
func (s *mockedRelayService) Accept() *tls.Conn {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *mockedRelayService) Relays() []string {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *mockedRelayService) RelayStatus(uri string) (time.Duration, bool) {
|
||||||
|
return 0, false
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user