fakeCake = new(fake_cake.FakeCake) fakeVolumeCreator = &FakeVolumeCreator{} fakeNamespacer = &fake_namespacer.FakeNamespacer{} name = "some-name" provider = rootfs_provider.NewLayerCreator( fakeCake, fakeVolumeCreator, fakeNamespacer, ) }) Describe("Create", func() { Context("when the namespace parameter is false", func() { It("creates a graph entry with it as the parent", func() { fakeCake.PathReturns("/some/graph/driver/mount/point", nil) mountpoint, envvars, err := provider.Create( lagertest.NewTestLogger("test"), "some-id", &repository_fetcher.Image{ ImageID: "some-image-id", Env: []string{"env1=env1value", "env2=env2value"}, }, rootfs_provider.Spec{ Namespaced: false, QuotaSize: 0, }, ) Expect(err).ToNot(HaveOccurred())
Expect(cake.CreateCallCount()).To(Equal(1)) cid, iid, _ := cake.CreateArgsForCall(0) Expect(cid).To(Equal(namespacedChildID)) Expect(iid.GraphID()).To(BeEmpty()) }) Context("when mounting child fails", func() { It("should return the error", func() { cake.GetReturns(nil, testError) 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