Expect(err).NotTo(HaveOccurred()) yaml, err = boshClient.ResolveManifestVersions(yaml) Expect(err).NotTo(HaveOccurred()) _, err = boshClient.Deploy(yaml) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) }) By("stopping the spammer", func() { spammer.Stop() }) By("reading from the consul kv store", func() { err := spammer.Check() if config.WindowsClients { if err != nil { Expect(err).To(HaveLen(1)) Expect(err).To(HaveKey("unexpected status: 500 Internal Server Error No known Consul servers")) } } else { Expect(err).NotTo(HaveOccurred()) } }) }) })
prefix = fmt.Sprintf("some-prefix-%v", rand.Int()) kv = newFakeKV() kv.AddressCall.Returns.Address = "http://some-address/consul" spammer = helpers.NewSpammer(kv, time.Duration(0), prefix) spammer.Spam() Eventually(func() int { return kv.SetCall.CallCount.Value() }).Should(BeNumerically(">", 1)) spammer.Stop() }) It("gets all the sets", func() { Expect(spammer.Check()).To(Succeed()) Expect(kv.GetCall.CallCount).Should(Equal(kv.SetCall.CallCount.Value())) }) It("returns an error when a key doesn't exist", func() { kv.GetCall.Returns.Error = fmt.Errorf("could not find key: %s-some-key-0", prefix) err := spammer.Check() Expect(err).To(MatchError(ContainSubstring(fmt.Sprintf("could not find key: %v-some-key-0", prefix)))) }) It("returns an error when a key doesn't match it's value", func() { Expect(kv.KeyVals).To(HaveKeyWithValue(fmt.Sprintf("%v-some-key-0", prefix), fmt.Sprintf("%v-some-value-0", prefix))) kv.KeyVals[fmt.Sprintf("%v-some-key-0", prefix)] = "banana" err := spammer.Check()
By("scaling from 3 nodes to 5", func() { var err error manifest, err = manifest.SetConsulJobInstanceCount(5) Expect(err).NotTo(HaveOccurred()) yaml, err := manifest.ToYAML() Expect(err).NotTo(HaveOccurred()) spammer.Spam() _, err = boshClient.Deploy(yaml) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, manifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(manifest))) spammer.Stop() }) By("reading the value from consul", func() { value, err := kv.Get(testKey) Expect(err).NotTo(HaveOccurred()) Expect(value).To(Equal(testValue)) err = spammer.Check() Expect(err).NotTo(HaveOccurred()) }) }) }) })