Skip to content

Instantly share code, notes, and snippets.

View SAGARSURI's full-sized avatar
💭
Building apps with Flutter

SAGAR SURI SAGARSURI

💭
Building apps with Flutter
View GitHub Profile
import 'dart:io';
import 'package:inject/inject.dart';
import 'package:mockito/mockito.dart';
import 'package:my_movies/src/resources/movie_api_provider.dart';
import 'package:my_movies/src/models/item_model.dart';
import 'package:my_movies/src/models/trailer_model.dart';
import 'package:my_movies/src/models/state.dart';
import 'provider_injector.dart';
import 'provider_module.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:inject/inject.dart';
import 'package:my_movies/src/resources/movie_api_provider.dart';
import 'package:http/http.dart' as http;
import 'mock_client.dart';
@module
class ProviderModule{
@provide
import 'package:inject/inject.dart';
import 'provider_injector.inject.dart' as g;
import 'provider_module.dart';
import 'provider_test.dart';
@Injector(const [ProviderModule])
abstract class ProviderTestInjector{
@provide
ProviderTest get app;
import 'package:mockito/mockito.dart';
import 'package:http/http.dart' as http ;
class MockClient extends Mock implements http.Client {}
import 'dart:async';
import 'package:flutter/material.dart';
import '../blocs/movie_detail_bloc.dart';
import '../models/trailer_model.dart';
class MovieDetail extends StatefulWidget {
final MovieDetailBloc bloc;
final String posterUrl;
final String description;
import 'package:rxdart/rxdart.dart';
import '../models/trailer_model.dart';
import '../resources/repository.dart';
import 'bloc_base.dart';
import 'package:inject/inject.dart';
import '../models/state.dart';
class MovieDetailBloc extends BlocBase {
final Repository _repository;
BehaviorSubject<TrailerModel> _trailers;
import '../resources/repository.dart';
import 'package:rxdart/rxdart.dart';
import '../models/item_model.dart';
import '../models/state.dart';
import 'package:inject/inject.dart';
import 'bloc_base.dart';
class MoviesBloc extends BlocBase {
final Repository _repository;
PublishSubject<ItemModel> _moviesFetcher;
import 'dart:async';
import 'movie_api_provider.dart';
import 'package:inject/inject.dart';
import '../models/state.dart';
class Repository {
final MovieApiProvider _moviesApiProvider;
@provide
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' show Client, Response;
import '../models/item_model.dart';
import '../models/trailer_model.dart';
import 'package:inject/inject.dart';
import '../models/state.dart';
class MovieApiProvider {
final Client client;
class State<T>{
State._();
factory State.success(T value) = SuccessState<T>;
factory State.error(T msg) = ErrorState<T>;
}
class ErrorState<T> extends State<T> {
ErrorState(this.msg) : super._();
final T msg;
}