Expect(dst).To(Equal("/mount/point/" + layercake.NamespacedID(layercake.DockerImageID("some-image-id"), "jam").GraphID()))

					Expect(mountpoint).To(Equal("/mount/point/" + layercake.ContainerID("some-id").GraphID()))
					Expect(envvars).To(Equal(
						[]string{
							"env1=env1value",
							"env2=env2value",
						},
					))
				})

				Context("unmounting the translation layer", func() {
					BeforeEach(func() {
						// ensure umount doesnt happen too quickly
						fakeNamespacer.NamespaceStub = func(_ lager.Logger, _ string) error {
							Expect(fakeCake.UnmountCallCount()).To(Equal(0))
							return nil
						}
					})

					It("unmounts the translation layer after performing namespacing", func() {
						Expect(fakeCake.UnmountCallCount()).Should(Equal(1))
						Expect(fakeCake.UnmountArgsForCall(0)).To(Equal(layercake.NamespacedID(layercake.DockerImageID("some-image-id"), "jam")))
					})
				})
			})

			Context("and the image has already been translated", func() {
				BeforeEach(func() {
					fakeCake.PathStub = func(id layercake.ID) (string, error) {
						return "/mount/point/" + id.GraphID(), nil
示例#2
0
					Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Equal(testError))
				})
			})

			Context("when getting parent's path fails", func() {
				BeforeEach(func() {
					cake.PathReturns("", testError)
				})

				It("should return the error", func() {
					Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Equal(testError))
				})

				It("should not unmount the parent", func() {
					Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Equal(testError))
					Expect(cake.UnmountCallCount()).To(Equal(0))
				})
			})

			Context("when getting parent's path succeeds", func() {
				var succeedingRunner *fake_command_runner.FakeCommandRunner

				BeforeEach(func() {
					succeedingRunner = fake_command_runner.New()
					succeedingRunner.WhenRunning(fake_command_runner.CommandSpec{}, func(cmd *exec.Cmd) error {
						return nil
					})
				})

				It("should unmount the parentID", func() {
					aufsCake.Runner = succeedingRunner