requestBody = &models.TasksRequest{
						CellId: "cell-id",
					}
				})

				It("calls the DB with a cell filter", func() {
					Expect(controller.TasksCallCount()).To(Equal(1))
					_, domain, cellID := controller.TasksArgsForCall(0)
					Expect(domain).To(Equal(""))
					Expect(cellID).To(Equal("cell-id"))
				})
			})

			Context("and the returned tasks have cache dependencies", func() {
				BeforeEach(func() {
					task1.TaskDefinition = &models.TaskDefinition{}
					task2.TaskDefinition = &models.TaskDefinition{}

					task1.Action = &models.Action{
						UploadAction: &models.UploadAction{
							From: "web_location",
						},
					}

					task1.CachedDependencies = []*models.CachedDependency{
						{Name: "name-1", From: "from-1", To: "to-1", CacheKey: "cache-key-1", LogSource: "log-source-1"},
					}

					task2.CachedDependencies = []*models.CachedDependency{
						{Name: "name-2", From: "from-2", To: "to-2", CacheKey: "cache-key-2", LogSource: "log-source-2"},
						{Name: "name-3", From: "from-3", To: "to-3", CacheKey: "cache-key-3", LogSource: "log-source-3"},
				Expect(err).NotTo(HaveOccurred())
				defer rows.Close()

				tasks := []*models.Task{}

				for rows.Next() {
					var taskTest models.Task
					var encryptedDefinition []byte

					err := rows.Scan(&taskTest.TaskGuid, &taskTest.Domain,
						&taskTest.UpdatedAt, &taskTest.CreatedAt, &taskTest.FirstCompletedAt,
						&taskTest.State, &taskTest.CellId, &taskTest.Result,
						&taskTest.Failed, &taskTest.FailureReason, &encryptedDefinition)
					Expect(err).NotTo(HaveOccurred())

					taskTest.TaskDefinition = &models.TaskDefinition{}
					err = serializer.Unmarshal(logger, encryptedDefinition, taskTest.TaskDefinition)
					Expect(err).NotTo(HaveOccurred())

					tasks = append(tasks, &taskTest)
				}

				Expect(tasks).To(HaveLen(tasksToCreate))
				Expect(tasks).To(ConsistOf(existingTasks))
			})
		})
	})

	Describe("Down", func() {
		It("returns a not implemented error", func() {
			Expect(migration.Down(logger)).To(HaveOccurred())