logger lager.Logger
		)

		BeforeEach(func() {
			logger = lagertest.NewTestLogger("test")
			fakeCake = new(fake_cake.FakeCake)
			fakeCake.GetReturns(nil, errors.New("no such image"))

			baseSizer = quota_manager.NewAUFSBaseSizer(fakeCake)
		})

		It("asks for the size of the layer based on the base name of the rootfs path", func() {
			baseSizer.BaseSize(logger, "/some/path/to/54321")
			Expect(fakeCake.GetCallCount()).To(Equal(1))
			Expect(fakeCake.GetArgsForCall(0)).To(Equal(layercake.DockerImageID("54321")))
		})

		Context("when the layer doesn't exist", func() {
			It("returns an error", func() {
				_, err := baseSizer.BaseSize(logger, "/i/dont/exist")
				Expect(err).To(HaveOccurred())
			})
		})

		Context("when the layer exists", func() {
			Context("and has no parents", func() {
				It("returns the size of the layer", func() {
					fakeCake.GetReturns(&image.Image{
						Size: 1234,
					}, nil)
			Describe("Copying", func() {
				Context("when parent layer has a file", func() {
					BeforeEach(func() {
						Expect(ioutil.WriteFile(filepath.Join(parentDir, "somefile"), []byte("somecontents"), 0755)).To(Succeed())
					})

					It("should copy the parent layer to the child layer", func() {
						Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Succeed())

						Expect(cake.CreateCallCount()).To(Equal(1))
						layerID, layerParentID, _ := cake.CreateArgsForCall(0)
						Expect(layerID).To(Equal(namespacedChildID))
						Expect(layerParentID).To(Equal(layercake.DockerImageID("")))

						Expect(cake.GetCallCount()).To(Equal(1))
						Expect(cake.GetArgsForCall(0)).To(Equal(namespacedChildID))

						Expect(cake.PathCallCount()).To(Equal(2))
						Expect(cake.PathArgsForCall(0)).To(Equal(parentID))
						Expect(cake.PathArgsForCall(1)).To(Equal(namespacedChildID))

						_, err := os.Stat(filepath.Join(namespacedChildDir, "somefile"))
						Expect(err).ToNot(HaveOccurred())
					})
				})

				Context("when parent layer has a directory", func() {
					var subDirectory string

					BeforeEach(func() {
						subDirectory = filepath.Join(parentDir, "sub-dir")