// DockerStatesEqual determines if the two given dockerstates are equal, for
// equal meaning they have the same tasks and their tasks are equal
func DockerStatesEqual(lhs, rhs *dockerstate.DockerTaskEngineState) bool {
	// Simple equality check; just verify that all tasks are equal
	lhsTasks := lhs.AllTasks()
	rhsTasks := rhs.AllTasks()
	if len(lhsTasks) != len(rhsTasks) {
		return false
	}

	for _, left := range lhsTasks {
		right, ok := rhs.TaskByArn(left.Arn)
		if !ok {
			return false
		}
		if !api_testutils.TasksEqual(left, right) {
			return false
		}
	}
	return true
}