// Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library mocks;

import 'dart:async';

import 'package:observatory/models.dart' as M;

part 'src/mocks/exceptions/connection_exception.dart';

part 'src/mocks/objects/error.dart';
part 'src/mocks/objects/event.dart';
part 'src/mocks/objects/class.dart';
part 'src/mocks/objects/isolate.dart';
part 'src/mocks/objects/library.dart';
part 'src/mocks/objects/notification.dart';
part 'src/mocks/objects/script.dart';
part 'src/mocks/objects/source_location.dart';
part 'src/mocks/objects/target.dart';
part 'src/mocks/objects/vm.dart';

part 'src/mocks/repositories/crash_dump.dart';
part 'src/mocks/repositories/notification.dart';
part 'src/mocks/repositories/target.dart';
