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 Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Succeed()) Expect(cake.UnmountCallCount()).To(Equal(1)) Expect(cake.UnmountArgsForCall(0)).To(Equal(parentID)) }) It("should only unmount the parentID after mounting it", func() { cake.UnmountStub = func(id layercake.ID) error { Expect(cake.PathCallCount()).Should(BeNumerically(">", 0)) Expect(cake.PathArgsForCall(0)).To(Equal(parentID)) return nil } aufsCake.Runner = succeedingRunner Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Succeed()) }) It("should only unmount the parentID after we copy the parent directory", func() { runCallCount := 0 cake.UnmountStub = func(id layercake.ID) error { Expect(runCallCount).To(Equal(1)) return nil }