本文整理汇总了Golang中github.com/juju/core/state/testing.AssertStop函数的典型用法代码示例。如果您正苦于以下问题:Golang AssertStop函数的具体用法?Golang AssertStop怎么用?Golang AssertStop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AssertStop函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestWatchUnits
func (s *deployerSuite) TestWatchUnits(c *gc.C) {
machine, err := s.st.Machine(s.machine.Tag())
c.Assert(err, gc.IsNil)
w, err := machine.WatchUnits()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewStringsWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertChange("mysql/0", "logging/0")
wc.AssertNoChange()
// Change something other than the lifecycle and make sure it's
// not detected.
err = s.subordinate.SetPassword("foo")
c.Assert(err, gc.ErrorMatches, "password is only 3 bytes long, and is not a valid Agent password")
wc.AssertNoChange()
err = s.subordinate.SetPassword("foo-12345678901234567890")
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
// Make the subordinate dead and check it's detected.
err = s.subordinate.EnsureDead()
c.Assert(err, gc.IsNil)
wc.AssertChange("logging/0")
wc.AssertNoChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:31,代码来源:deployer_test.go
示例2: TestPeerWatchScope
func (s *RelationUnitSuite) TestPeerWatchScope(c *gc.C) {
pr := NewPeerRelation(c, s.State)
// Test empty initial event.
w0 := pr.ru0.WatchScope()
defer testing.AssertStop(c, w0)
s.assertScopeChange(c, w0, nil, nil)
s.assertNoScopeChange(c, w0)
// ru0 enters; check no change, but settings written.
assertNotInScope(c, pr.ru0)
err := pr.ru0.EnterScope(map[string]interface{}{"foo": "bar"})
c.Assert(err, gc.IsNil)
s.assertNoScopeChange(c, w0)
node, err := pr.ru0.Settings()
c.Assert(err, gc.IsNil)
c.Assert(node.Map(), gc.DeepEquals, map[string]interface{}{"foo": "bar"})
assertJoined(c, pr.ru0)
// ru1 enters; check change is observed.
assertNotInScope(c, pr.ru1)
err = pr.ru1.EnterScope(nil)
c.Assert(err, gc.IsNil)
s.assertScopeChange(c, w0, []string{"riak/1"}, nil)
s.assertNoScopeChange(c, w0)
assertJoined(c, pr.ru1)
// ru1 enters again, check no problems and no changes.
err = pr.ru1.EnterScope(nil)
c.Assert(err, gc.IsNil)
s.assertNoScopeChange(c, w0)
assertJoined(c, pr.ru1)
// Stop watching; ru2 enters.
testing.AssertStop(c, w0)
assertNotInScope(c, pr.ru2)
err = pr.ru2.EnterScope(nil)
c.Assert(err, gc.IsNil)
assertJoined(c, pr.ru2)
// Start watch again, check initial event.
w0 = pr.ru0.WatchScope()
defer testing.AssertStop(c, w0)
s.assertScopeChange(c, w0, []string{"riak/1", "riak/2"}, nil)
s.assertNoScopeChange(c, w0)
// ru1 leaves; check event.
assertJoined(c, pr.ru1)
err = pr.ru1.LeaveScope()
c.Assert(err, gc.IsNil)
s.assertScopeChange(c, w0, nil, []string{"riak/1"})
s.assertNoScopeChange(c, w0)
assertNotInScope(c, pr.ru1)
// ru1 leaves again; check no problems and no changes.
err = pr.ru1.LeaveScope()
c.Assert(err, gc.IsNil)
s.assertNoScopeChange(c, w0)
assertNotInScope(c, pr.ru1)
}
开发者ID:jkary,项目名称:core,代码行数:60,代码来源:relationunit_test.go
示例3: TestWatchUnits
func (s *machineSuite) TestWatchUnits(c *gc.C) {
w, err := s.apiMachine.WatchUnits()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewStringsWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertChange("wordpress/0")
wc.AssertNoChange()
// Change something other than the life cycle and make sure it's
// not detected.
err = s.machines[0].SetPassword("foo")
c.Assert(err, gc.ErrorMatches, "password is only 3 bytes long, and is not a valid Agent password")
wc.AssertNoChange()
err = s.machines[0].SetPassword("foo-12345678901234567890")
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
// Unassign unit 0 from the machine and check it's detected.
err = s.units[0].UnassignFromMachine()
c.Assert(err, gc.IsNil)
wc.AssertChange("wordpress/0")
wc.AssertNoChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:29,代码来源:machine_test.go
示例4: TestWatchEnvironMachines
func (s *stateSuite) TestWatchEnvironMachines(c *gc.C) {
w, err := s.firewaller.WatchEnvironMachines()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewStringsWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertChange(s.machines[0].Id(), s.machines[1].Id(), s.machines[2].Id())
// Add another machine make sure they are detected.
otherMachine, err := s.State.AddMachine("quantal", state.JobHostUnits)
c.Assert(err, gc.IsNil)
wc.AssertChange(otherMachine.Id())
// Change the life cycle of last machine.
err = otherMachine.EnsureDead()
c.Assert(err, gc.IsNil)
wc.AssertChange(otherMachine.Id())
// Add a container and make sure it's not detected.
template := state.MachineTemplate{
Series: "quantal",
Jobs: []state.MachineJob{state.JobHostUnits},
}
_, err = s.State.AddMachineInsideMachine(template, s.machines[0].Id(), instance.LXC)
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:31,代码来源:state_test.go
示例5: TestWatch
func (s *unitSuite) TestWatch(c *gc.C) {
c.Assert(s.apiUnit.Life(), gc.Equals, params.Alive)
w, err := s.apiUnit.Watch()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertOneChange()
// Change something other than the life cycle and make sure it's
// not detected.
err = s.units[0].SetStatus(params.StatusStarted, "not really", nil)
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
// Make the unit dead and check it's detected.
err = s.units[0].EnsureDead()
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:25,代码来源:unit_test.go
示例6: TestWatchAPIHostPorts
func (s *APIAddresserTests) TestWatchAPIHostPorts(c *gc.C) {
expectServerAddrs := [][]instance.HostPort{{{
Address: instance.NewAddress("0.1.2.3", instance.NetworkUnknown),
Port: 1234,
}}}
err := s.state.SetAPIHostPorts(expectServerAddrs)
c.Assert(err, gc.IsNil)
w, err := s.facade.WatchAPIHostPorts()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.state, w)
// Initial event.
wc.AssertOneChange()
// Change the state addresses and check that we get a notification
expectServerAddrs[0][0].Value = "0.1.99.99"
err = s.state.SetAPIHostPorts(expectServerAddrs)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:28,代码来源:apiaddresser.go
示例7: TestWatchUnits
func (s *firewallerSuite) TestWatchUnits(c *gc.C) {
c.Assert(s.resources.Count(), gc.Equals, 0)
args := addFakeEntities(params.Entities{Entities: []params.Entity{
{Tag: s.machines[0].Tag()},
{Tag: s.service.Tag()},
{Tag: s.units[0].Tag()},
}})
result, err := s.firewaller.WatchUnits(args)
c.Assert(err, gc.IsNil)
c.Assert(result, jc.DeepEquals, params.StringsWatchResults{
Results: []params.StringsWatchResult{
{Changes: []string{"wordpress/0"}, StringsWatcherId: "1"},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.NotFoundError("machine 42")},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
},
})
// Verify the resource was registered and stop when done
c.Assert(s.resources.Count(), gc.Equals, 1)
c.Assert(result.Results[0].StringsWatcherId, gc.Equals, "1")
resource := s.resources.Get("1")
defer statetesting.AssertStop(c, resource)
// Check that the Watch has consumed the initial event ("returned" in
// the Watch call)
wc := statetesting.NewStringsWatcherC(c, s.State, resource.(state.StringsWatcher))
wc.AssertNoChange()
}
开发者ID:jkary,项目名称:core,代码行数:35,代码来源:firewaller_test.go
示例8: TestCoalesceWatchScope
func (s *RelationUnitSuite) TestCoalesceWatchScope(c *gc.C) {
pr := NewPeerRelation(c, s.State)
// Test empty initial event.
w0 := pr.ru0.WatchScope()
defer testing.AssertStop(c, w0)
s.assertScopeChange(c, w0, nil, nil)
s.assertNoScopeChange(c, w0)
// ru1 and ru2 enter; check changes observed together.
err := pr.ru1.EnterScope(nil)
c.Assert(err, gc.IsNil)
err = pr.ru2.EnterScope(nil)
c.Assert(err, gc.IsNil)
s.assertScopeChange(c, w0, []string{"riak/1", "riak/2"}, nil)
s.assertNoScopeChange(c, w0)
// ru1 leaves and re-enters; check no change observed.
err = pr.ru1.LeaveScope()
c.Assert(err, gc.IsNil)
err = pr.ru1.EnterScope(nil)
c.Assert(err, gc.IsNil)
s.assertNoScopeChange(c, w0)
// ru1 and ru2 leave; check changes observed together.
err = pr.ru1.LeaveScope()
c.Assert(err, gc.IsNil)
err = pr.ru2.LeaveScope()
c.Assert(err, gc.IsNil)
s.assertScopeChange(c, w0, nil, []string{"riak/1", "riak/2"})
s.assertNoScopeChange(c, w0)
}
开发者ID:jkary,项目名称:core,代码行数:32,代码来源:relationunit_test.go
示例9: TestServiceDeath
func (s *FilterSuite) TestServiceDeath(c *gc.C) {
f, err := newFilter(s.uniter, s.unit.Tag())
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, f)
dyingAsserter := coretesting.NotifyAsserterC{
C: c,
Precond: func() { s.BackingState.StartSync() },
Chan: f.UnitDying(),
}
dyingAsserter.AssertNoReceive()
err = s.unit.SetStatus(params.StatusStarted, "", nil)
c.Assert(err, gc.IsNil)
err = s.wordpress.Destroy()
c.Assert(err, gc.IsNil)
timeout := time.After(coretesting.LongWait)
loop:
for {
select {
case <-f.UnitDying():
break loop
case <-time.After(coretesting.ShortWait):
s.BackingState.StartSync()
case <-timeout:
c.Fatalf("dead not detected")
}
}
err = s.unit.Refresh()
c.Assert(err, gc.IsNil)
c.Assert(s.unit.Life(), gc.Equals, state.Dying)
// Can't set s.wordpress to Dead while it still has units.
}
开发者ID:jkary,项目名称:core,代码行数:34,代码来源:filter_test.go
示例10: TestWatch
func (s *machinerSuite) TestWatch(c *gc.C) {
c.Assert(s.resources.Count(), gc.Equals, 0)
args := params.Entities{Entities: []params.Entity{
{Tag: "machine-1"},
{Tag: "machine-0"},
{Tag: "machine-42"},
}}
result, err := s.machiner.Watch(args)
c.Assert(err, gc.IsNil)
c.Assert(result, gc.DeepEquals, params.NotifyWatchResults{
Results: []params.NotifyWatchResult{
{NotifyWatcherId: "1"},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
},
})
// Verify the resource was registered and stop when done
c.Assert(s.resources.Count(), gc.Equals, 1)
c.Assert(result.Results[0].NotifyWatcherId, gc.Equals, "1")
resource := s.resources.Get("1")
defer statetesting.AssertStop(c, resource)
// Check that the Watch has consumed the initial event ("returned" in
// the Watch call)
wc := statetesting.NewNotifyWatcherC(c, s.State, resource.(state.NotifyWatcher))
wc.AssertNoChange()
}
开发者ID:jkary,项目名称:core,代码行数:29,代码来源:machiner_test.go
示例11: TestWatchAuthorisedKeys
func (s *authorisedKeysSuite) TestWatchAuthorisedKeys(c *gc.C) {
args := params.Entities{
Entities: []params.Entity{
{Tag: s.rawMachine.Tag()},
{Tag: s.unrelatedMachine.Tag()},
{Tag: "machine-42"},
},
}
results, err := s.keyupdater.WatchAuthorisedKeys(args)
c.Assert(err, gc.IsNil)
c.Assert(results, gc.DeepEquals, params.NotifyWatchResults{
Results: []params.NotifyWatchResult{
{NotifyWatcherId: "1"},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
},
})
c.Assert(results.Results[0].NotifyWatcherId, gc.Not(gc.Equals), "")
c.Assert(results.Results[0].Error, gc.IsNil)
resource := s.resources.Get(results.Results[0].NotifyWatcherId)
c.Assert(resource, gc.NotNil)
w := resource.(state.NotifyWatcher)
wc := statetesting.NewNotifyWatcherC(c, s.State, w)
wc.AssertNoChange()
s.setAuthorizedKeys(c, "key1\nkey2")
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:32,代码来源:authorisedkeys_test.go
示例12: TestWatchConfigSettings
func (s *unitSuite) TestWatchConfigSettings(c *gc.C) {
// Make sure WatchConfigSettings returns an error when
// no charm URL is set, as its state counterpart does.
w, err := s.apiUnit.WatchConfigSettings()
c.Assert(err, gc.ErrorMatches, "unit charm not set")
// Now set the charm and try again.
err = s.apiUnit.SetCharmURL(s.wordpressCharm.URL())
c.Assert(err, gc.IsNil)
w, err = s.apiUnit.WatchConfigSettings()
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertOneChange()
// Update config a couple of times, check a single event.
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "superhero paparazzi",
})
c.Assert(err, gc.IsNil)
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "sauceror central",
})
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
// Non-change is not reported.
err = s.wordpressService.UpdateConfigSettings(charm.Settings{
"blog-title": "sauceror central",
})
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
// NOTE: This test is not as exhaustive as the one in state,
// because the watcher is already tested there. Here we just
// ensure we get the events when we expect them and don't get
// them when they're not expected.
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:43,代码来源:unit_test.go
示例13: TestWatchAPIVersion
func (s *unitUpgraderSuite) TestWatchAPIVersion(c *gc.C) {
w, err := s.st.WatchAPIVersion(s.rawUnit.Tag())
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w)
// Initial event
wc.AssertOneChange()
vers := version.MustParseBinary("10.20.34-quantal-amd64")
err = s.rawMachine.SetAgentVersion(vers)
c.Assert(err, gc.IsNil)
// One change noticing the new version
wc.AssertOneChange()
vers = version.MustParseBinary("10.20.35-quantal-amd64")
err = s.rawMachine.SetAgentVersion(vers)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:19,代码来源:unitupgrader_test.go
示例14: TestWatchAuthorisedKeys
func (s *keyupdaterSuite) TestWatchAuthorisedKeys(c *gc.C) {
watcher, err := s.keyupdater.WatchAuthorisedKeys(s.rawMachine.Tag())
c.Assert(err, gc.IsNil)
defer testing.AssertStop(c, watcher)
wc := testing.NewNotifyWatcherC(c, s.BackingState, watcher)
// Initial event
wc.AssertOneChange()
s.setAuthorisedKeys(c, "key1\nkey2")
// One change noticing the new version
wc.AssertOneChange()
// Setting the version to the same value doesn't trigger a change
s.setAuthorisedKeys(c, "key1\nkey2")
wc.AssertNoChange()
s.setAuthorisedKeys(c, "key1\nkey2\nkey3")
wc.AssertOneChange()
testing.AssertStop(c, watcher)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:20,代码来源:authorisedkeys_test.go
示例15: TestWatchRelationUnits
func (s *relationUnitSuite) TestWatchRelationUnits(c *gc.C) {
// Enter scope with mysqlUnit.
myRelUnit, err := s.stateRelation.Unit(s.mysqlUnit)
c.Assert(err, gc.IsNil)
err = myRelUnit.EnterScope(nil)
c.Assert(err, gc.IsNil)
s.assertInScope(c, myRelUnit, true)
apiRel, err := s.uniter.Relation(s.stateRelation.Tag())
c.Assert(err, gc.IsNil)
apiUnit, err := s.uniter.Unit("unit-wordpress-0")
c.Assert(err, gc.IsNil)
apiRelUnit, err := apiRel.Unit(apiUnit)
c.Assert(err, gc.IsNil)
w, err := apiRelUnit.Watch()
defer statetesting.AssertStop(c, w)
wc := statetesting.NewRelationUnitsWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertChange([]string{"mysql/0"}, nil)
// Leave scope with mysqlUnit, check it's detected.
err = myRelUnit.LeaveScope()
c.Assert(err, gc.IsNil)
s.assertInScope(c, myRelUnit, false)
wc.AssertChange(nil, []string{"mysql/0"})
// Non-change is not reported.
err = myRelUnit.LeaveScope()
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
// NOTE: This test is not as exhaustive as the one in state,
// because the watcher is already tested there. Here we just
// ensure we get the events when we expect them and don't get
// them when they're not expected.
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:41,代码来源:relationunit_test.go
示例16: TestWatch
func (s *firewallerSuite) TestWatch(c *gc.C) {
c.Assert(s.resources.Count(), gc.Equals, 0)
args := addFakeEntities(params.Entities{Entities: []params.Entity{
{Tag: s.machines[0].Tag()},
{Tag: s.service.Tag()},
{Tag: s.units[0].Tag()},
}})
result, err := s.firewaller.Watch(args)
c.Assert(err, gc.IsNil)
c.Assert(result, jc.DeepEquals, params.NotifyWatchResults{
Results: []params.NotifyWatchResult{
{Error: apiservertesting.ErrUnauthorized},
{NotifyWatcherId: "1"},
{NotifyWatcherId: "2"},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.NotFoundError(`unit "foo/0"`)},
{Error: apiservertesting.NotFoundError(`service "bar"`)},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
{Error: apiservertesting.ErrUnauthorized},
},
})
// Verify the resources were registered and stop when done.
c.Assert(s.resources.Count(), gc.Equals, 2)
c.Assert(result.Results[1].NotifyWatcherId, gc.Equals, "1")
watcher1 := s.resources.Get("1")
defer statetesting.AssertStop(c, watcher1)
c.Assert(result.Results[2].NotifyWatcherId, gc.Equals, "2")
watcher2 := s.resources.Get("2")
defer statetesting.AssertStop(c, watcher2)
// Check that the Watch has consumed the initial event ("returned" in
// the Watch call)
wc1 := statetesting.NewNotifyWatcherC(c, s.State, watcher1.(state.NotifyWatcher))
wc1.AssertNoChange()
wc2 := statetesting.NewNotifyWatcherC(c, s.State, watcher2.(state.NotifyWatcher))
wc2.AssertNoChange()
}
开发者ID:jkary,项目名称:core,代码行数:40,代码来源:firewaller_test.go
示例17: TestResolvedEvents
func (s *FilterSuite) TestResolvedEvents(c *gc.C) {
f, err := newFilter(s.uniter, s.unit.Tag())
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, f)
resolvedAsserter := coretesting.ContentAsserterC{
C: c,
Precond: func() { s.BackingState.StartSync() },
Chan: f.ResolvedEvents(),
}
resolvedAsserter.AssertNoReceive()
// Request an event; no interesting event is available.
f.WantResolvedEvent()
resolvedAsserter.AssertNoReceive()
// Change the unit in an irrelevant way; no events.
err = s.unit.SetStatus(params.StatusError, "blarg", nil)
c.Assert(err, gc.IsNil)
resolvedAsserter.AssertNoReceive()
// Change the unit's resolved to an interesting value; new event received.
err = s.unit.SetResolved(state.ResolvedRetryHooks)
c.Assert(err, gc.IsNil)
assertChange := func(expect params.ResolvedMode) {
rm := resolvedAsserter.AssertOneReceive().(params.ResolvedMode)
c.Assert(rm, gc.Equals, expect)
}
assertChange(params.ResolvedRetryHooks)
// Ask for the event again, and check it's resent.
f.WantResolvedEvent()
assertChange(params.ResolvedRetryHooks)
// Clear the resolved status *via the filter*; check not resent...
err = f.ClearResolved()
c.Assert(err, gc.IsNil)
resolvedAsserter.AssertNoReceive()
// ...even when requested.
f.WantResolvedEvent()
resolvedAsserter.AssertNoReceive()
// Induce several events; only latest state is reported.
err = s.unit.SetResolved(state.ResolvedRetryHooks)
c.Assert(err, gc.IsNil)
err = f.ClearResolved()
c.Assert(err, gc.IsNil)
err = s.unit.SetResolved(state.ResolvedNoHooks)
c.Assert(err, gc.IsNil)
assertChange(params.ResolvedNoHooks)
}
开发者ID:jkary,项目名称:core,代码行数:52,代码来源:filter_test.go
示例18: TestWatchForEnvironConfigChanges
func (s *EnvironWatcherTests) TestWatchForEnvironConfigChanges(c *gc.C) {
envConfig, err := s.state.EnvironConfig()
c.Assert(err, gc.IsNil)
w, err := s.facade.WatchForEnvironConfigChanges()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.state, w)
// Initial event.
wc.AssertOneChange()
// Change the environment configuration by updating an existing attribute, check it's detected.
newAttrs := map[string]interface{}{"logging-config": "juju=ERROR"}
err = s.state.UpdateEnvironConfig(newAttrs, nil, nil)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
// Change the environment configuration by adding a new attribute, check it's detected.
newAttrs = map[string]interface{}{"foo": "bar"}
err = s.state.UpdateEnvironConfig(newAttrs, nil, nil)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
// Change the environment configuration by removing an attribute, check it's detected.
err = s.state.UpdateEnvironConfig(map[string]interface{}{}, []string{"foo"}, nil)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
// Change it back to the original config.
oldAttrs := map[string]interface{}{"logging-config": envConfig.AllAttrs()["logging-config"]}
err = s.state.UpdateEnvironConfig(oldAttrs, nil, nil)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:38,代码来源:environwatcher.go
示例19: TestWatchAPIVersion
func (s *machineUpgraderSuite) TestWatchAPIVersion(c *gc.C) {
w, err := s.st.WatchAPIVersion(s.rawMachine.Tag())
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w)
// Initial event
wc.AssertOneChange()
vers := version.MustParse("10.20.34")
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, gc.IsNil)
// One change noticing the new version
wc.AssertOneChange()
// Setting the version to the same value doesn't trigger a change
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, gc.IsNil)
wc.AssertNoChange()
vers = version.MustParse("10.20.35")
err = statetesting.SetAgentVersion(s.BackingState, vers)
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:23,代码来源:upgrader_test.go
示例20: TestWatch
func (s *serviceSuite) TestWatch(c *gc.C) {
c.Assert(s.apiService.Life(), gc.Equals, params.Alive)
w, err := s.apiService.Watch()
c.Assert(err, gc.IsNil)
defer statetesting.AssertStop(c, w)
wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w)
// Initial event.
wc.AssertOneChange()
// Change something and check it's detected.
err = s.service.SetExposed()
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
// Destroy the service and check it's detected.
err = s.service.Destroy()
c.Assert(err, gc.IsNil)
wc.AssertOneChange()
statetesting.AssertStop(c, w)
wc.AssertClosed()
}
开发者ID:jkary,项目名称:core,代码行数:24,代码来源:service_test.go
注:本文中的github.com/juju/core/state/testing.AssertStop函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论