本文整理匯總了Golang中bosh/system/fakes.FakeFileSystem.ReadFile方法的典型用法代碼示例。如果您正苦於以下問題:Golang FakeFileSystem.ReadFile方法的具體用法?Golang FakeFileSystem.ReadFile怎麽用?Golang FakeFileSystem.ReadFile使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類bosh/system/fakes.FakeFileSystem
的用法示例。
在下文中一共展示了FakeFileSystem.ReadFile方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: init
func init() {
Describe("concreteManagerProvider", func() {
Describe("NewManager", func() {
It("returns manager with tasks.json as its tasks path", func() {
logger := boshlog.NewLogger(boshlog.LEVEL_NONE)
fs := fakesys.NewFakeFileSystem()
taskInfo := boshtask.TaskInfo{
TaskId: "fake-task-id",
Method: "fake-method",
Payload: []byte("fake-payload"),
}
manager := boshtask.NewManagerProvider().NewManager(logger, fs, "/dir/path")
err := manager.AddTaskInfo(taskInfo)
Expect(err).ToNot(HaveOccurred())
// Check expected file location with another manager
otherManager := boshtask.NewManager(logger, fs, "/dir/path/tasks.json")
taskInfos, err := otherManager.GetTaskInfos()
Expect(err).ToNot(HaveOccurred())
Expect(taskInfos).To(Equal([]boshtask.TaskInfo{taskInfo}))
})
})
})
Describe("concreteManager", func() {
var (
logger boshlog.Logger
fs *fakesys.FakeFileSystem
manager boshtask.Manager
)
BeforeEach(func() {
logger = boshlog.NewLogger(boshlog.LEVEL_NONE)
fs = fakesys.NewFakeFileSystem()
manager = boshtask.NewManager(logger, fs, "/dir/path")
})
Describe("GetTaskInfos", func() {
It("can load multiple tasks", func() {
err := manager.AddTaskInfo(boshtask.TaskInfo{
TaskId: "fake-task-id-1",
Method: "fake-method-1",
Payload: []byte("fake-payload-1"),
})
Expect(err).ToNot(HaveOccurred())
err = manager.AddTaskInfo(boshtask.TaskInfo{
TaskId: "fake-task-id-2",
Method: "fake-method-2",
Payload: []byte("fake-payload-2"),
})
Expect(err).ToNot(HaveOccurred())
// Make sure we are not getting cached copy of taskInfos
reloadedManager := boshtask.NewManager(logger, fs, "/dir/path")
taskInfos, err := reloadedManager.GetTaskInfos()
Expect(err).ToNot(HaveOccurred())
Expect(taskInfos).To(Equal([]boshtask.TaskInfo{
boshtask.TaskInfo{
TaskId: "fake-task-id-1",
Method: "fake-method-1",
Payload: []byte("fake-payload-1"),
},
boshtask.TaskInfo{
TaskId: "fake-task-id-2",
Method: "fake-method-2",
Payload: []byte("fake-payload-2"),
},
}))
})
It("succeeds when there is no tasks (file is not present)", func() {
taskInfos, err := manager.GetTaskInfos()
Expect(err).ToNot(HaveOccurred())
Expect(len(taskInfos)).To(Equal(0))
})
It("returns an error when failing to load tasks from the file that exists", func() {
err := manager.AddTaskInfo(boshtask.TaskInfo{
TaskId: "fake-task-id-2",
Method: "fake-method-2",
Payload: []byte("fake-payload-2"),
})
Expect(err).ToNot(HaveOccurred())
fs.ReadFileError = errors.New("fake-read-error")
_, err = manager.GetTaskInfos()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-read-error"))
})
})
Describe("AddTaskInfo", func() {
It("can add multiple tasks", func() {
err := manager.AddTaskInfo(boshtask.TaskInfo{
//.........這裏部分代碼省略.........
示例2:
fs.WriteToFile("/var/vcap/micro_bosh/data/cache/123-456-789", "Some data")
putBody := `Updated data`
putPayload := strings.NewReader(putBody)
waitForServerToStart(serverURL, "blobs", httpClient)
request, err := http.NewRequest("PUT", serverURL+"/blobs/a5/123-456-789", putPayload)
Expect(err).ToNot(HaveOccurred())
httpResponse, err := httpClient.Do(request)
defer httpResponse.Body.Close()
Expect(err).ToNot(HaveOccurred())
Expect(httpResponse.StatusCode).To(Equal(201))
contents, err := fs.ReadFile("/var/vcap/micro_bosh/data/cache/123-456-789")
Expect(err).ToNot(HaveOccurred())
Expect(contents).To(Equal("Updated data"))
})
Context("when manager errors", func() {
It("returns a 500", func() {
fs.WriteToFileError = errors.New("oops")
putBody := `Updated data`
putPayload := strings.NewReader(putBody)
waitForServerToStart(serverURL, "blobs", httpClient)
request, err := http.NewRequest("PUT", serverURL+"/blobs/a5/123-456-789", putPayload)
Expect(err).ToNot(HaveOccurred())
示例3: init
func init() {
Describe("concreteServiceProvider", func() {
var (
platform *fakeplatform.FakePlatform
)
Describe("NewService", func() {
It("returns service with settings.json as its settings path", func() {
// Cannot compare fetcher functions since function comparison is problematic
fs := fakesys.NewFakeFileSystem()
logger := boshlog.NewLogger(boshlog.LevelNone)
service := NewServiceProvider().NewService(fs, "/setting/path", nil, platform, logger)
Expect(service).To(Equal(NewService(fs, "/setting/path/settings.json", nil, platform, logger)))
})
})
})
Describe("concreteService", func() {
var (
fs *fakesys.FakeFileSystem
platform *fakeplatform.FakePlatform
)
BeforeEach(func() {
fs = fakesys.NewFakeFileSystem()
platform = fakeplatform.NewFakePlatform()
})
buildService := func(fetcher SettingsFetcher) (Service, *fakesys.FakeFileSystem) {
logger := boshlog.NewLogger(boshlog.LevelNone)
service := NewService(fs, "/setting/path", fetcher, platform, logger)
return service, fs
}
Describe("LoadSettings", func() {
var (
fetchedSettings Settings
fetcherFuncErr error
service Service
)
BeforeEach(func() {
fetchedSettings = Settings{}
fetcherFuncErr = nil
})
JustBeforeEach(func() {
fetcherFunc := func() (Settings, error) { return fetchedSettings, fetcherFuncErr }
service, fs = buildService(fetcherFunc)
})
Context("when settings fetcher succeeds fetching settings", func() {
BeforeEach(func() {
fetchedSettings = Settings{AgentID: "some-new-agent-id"}
})
Context("when settings contain at most one dynamic network", func() {
BeforeEach(func() {
fetchedSettings.Networks = Networks{
"fake-net-1": Network{Type: NetworkTypeDynamic},
}
})
It("updates the service with settings from the fetcher", func() {
err := service.LoadSettings()
Expect(err).NotTo(HaveOccurred())
Expect(service.GetSettings().AgentID).To(Equal("some-new-agent-id"))
})
It("persists settings to the settings file", func() {
err := service.LoadSettings()
Expect(err).NotTo(HaveOccurred())
json, err := json.Marshal(fetchedSettings)
Expect(err).NotTo(HaveOccurred())
fileContent, err := fs.ReadFile("/setting/path")
Expect(err).NotTo(HaveOccurred())
Expect(fileContent).To(Equal(json))
})
It("returns any error from writing to the setting file", func() {
fs.WriteToFileError = errors.New("fs-write-file-error")
err := service.LoadSettings()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fs-write-file-error"))
})
})
Context("when settings contain multiple dynamic networks", func() {
BeforeEach(func() {
fetchedSettings.Networks = Networks{
"fake-net-1": Network{Type: NetworkTypeDynamic},
"fake-net-2": Network{Type: NetworkTypeDynamic},
}
})
It("returns error because multiple dynamic networks are not supported", func() {
err := service.LoadSettings()
//.........這裏部分代碼省略.........
示例4: init
//.........這裏部分代碼省略.........
platform.SetupSsh("some public key", "vcap")
sshDirPath := "/some/home/dir/.ssh"
sshDirStat := fs.GetFileTestStat(sshDirPath)
assert.Equal(GinkgoT(), fs.HomeDirUsername, "vcap")
assert.NotNil(GinkgoT(), sshDirStat)
assert.Equal(GinkgoT(), fakesys.FakeFileTypeDir, sshDirStat.FileType)
assert.Equal(GinkgoT(), sshDirStat.FileMode, os.FileMode(0700))
assert.Equal(GinkgoT(), sshDirStat.Username, "vcap")
authKeysStat := fs.GetFileTestStat(filepath.Join(sshDirPath, "authorized_keys"))
assert.NotNil(GinkgoT(), authKeysStat)
assert.Equal(GinkgoT(), authKeysStat.FileType, fakesys.FakeFileTypeFile)
assert.Equal(GinkgoT(), authKeysStat.FileMode, os.FileMode(0600))
assert.Equal(GinkgoT(), authKeysStat.Username, "vcap")
assert.Equal(GinkgoT(), authKeysStat.Content, "some public key")
})
It("ubuntu set user password", func() {
platform.SetUserPassword("my-user", "my-encrypted-password")
assert.Equal(GinkgoT(), 1, len(cmdRunner.RunCommands))
assert.Equal(GinkgoT(), []string{"usermod", "-p", "my-encrypted-password", "my-user"}, cmdRunner.RunCommands[0])
})
It("ubuntu setup hostname", func() {
platform.SetupHostname("foobar.local")
assert.Equal(GinkgoT(), 1, len(cmdRunner.RunCommands))
assert.Equal(GinkgoT(), []string{"hostname", "foobar.local"}, cmdRunner.RunCommands[0])
hostnameFileContent, err := fs.ReadFile("/etc/hostname")
assert.NoError(GinkgoT(), err)
assert.Equal(GinkgoT(), "foobar.local", hostnameFileContent)
hostsFileContent, err := fs.ReadFile("/etc/hosts")
assert.NoError(GinkgoT(), err)
assert.Equal(GinkgoT(), UBUNTU_EXPECTED_ETC_HOSTS, hostsFileContent)
})
It("ubuntu setup dhcp", func() {
networks := boshsettings.Networks{
"bosh": boshsettings.Network{
Default: []string{"dns"},
Dns: []string{"xx.xx.xx.xx", "yy.yy.yy.yy", "zz.zz.zz.zz"},
},
"vip": boshsettings.Network{
Default: []string{},
Dns: []string{"aa.aa.aa.aa"},
},
}
platform.SetupDhcp(networks)
dhcpConfig := fs.GetFileTestStat("/etc/dhcp3/dhclient.conf")
assert.NotNil(GinkgoT(), dhcpConfig)
assert.Equal(GinkgoT(), dhcpConfig.Content, UBUNTU_EXPECTED_DHCP_CONFIG)
assert.Equal(GinkgoT(), len(cmdRunner.RunCommands), 2)
assert.Equal(GinkgoT(), cmdRunner.RunCommands[0], []string{"pkill", "dhclient3"})
assert.Equal(GinkgoT(), cmdRunner.RunCommands[1], []string{"/etc/init.d/networking", "restart"})
})
It("ubuntu setup dhcp with pre existing configuration", func() {