Expect(err.Error()).To(HaveSuffix("invalid syntax"))
			})
		})
	})

	Describe("Limiting disk", func() {
		limits := garden.DiskLimits{
			InodeSoft: 13,
			InodeHard: 14,

			ByteSoft: 23,
			ByteHard: 24,
		}

		It("sets the quota via the quota manager with the container id", func() {
			err := container.LimitDisk(limits)
			Expect(err).ToNot(HaveOccurred())

			Expect(fakeQuotaManager.SetLimitsCallCount()).To(Equal(1))
			_, path, receivedLimits := fakeQuotaManager.SetLimitsArgsForCall(0)
			Expect(path).To(Equal(container.RootFSPath()))
			Expect(receivedLimits).To(Equal(limits))
		})

		Context("when setting the quota fails", func() {
			It("returns the error", func() {
				disaster := errors.New("oh no!")
				fakeQuotaManager.SetLimitsReturns(disaster)

				err := container.LimitDisk(limits)
				Expect(err).To(Equal(disaster))
		})

		Context("with limits set", func() {
			JustBeforeEach(func() {
				fakeOomWatcher.WatchStub = func(onOom func()) error {
					onOom()
					return nil
				}

				err := container.LimitMemory(memoryLimits)
				Expect(err).ToNot(HaveOccurred())

				Eventually(container.Events).Should(ContainElement("out of memory"))
				Eventually(container.State).Should(Equal(linux_backend.StateStopped))

				err = container.LimitDisk(diskLimits)
				Expect(err).ToNot(HaveOccurred())

				err = container.LimitBandwidth(bandwidthLimits)
				Expect(err).ToNot(HaveOccurred())

				err = container.LimitCPU(cpuLimits)
				Expect(err).ToNot(HaveOccurred())
			})

			It("saves them", func() {
				out := new(bytes.Buffer)

				err := container.Snapshot(out)
				Expect(err).ToNot(HaveOccurred())