diff --git a/test/cart_increment_test.dart b/test/cart_increment_test.dart new file mode 100644 index 0000000..bf384f4 --- /dev/null +++ b/test/cart_increment_test.dart @@ -0,0 +1,13 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:thesis_shop/redux/actions/actions.dart'; +import 'package:thesis_shop/redux/store.dart'; + +import 'product_service_mock.dart'; + +void main() { + test('cart increment test', () { + final store = createStore(productService: MockedProductService()); + store.dispatch(IncrementProductAction(product: demoProducts.first)); + expect(store.state.productQuantities[demoProducts.first.title], 1); + }); +} diff --git a/test/product_service_mock.dart b/test/product_service_mock.dart index d3dbb63..c54d122 100644 --- a/test/product_service_mock.dart +++ b/test/product_service_mock.dart @@ -1,15 +1,17 @@ import 'package:thesis_shop/models/product.dart'; import 'package:thesis_shop/service/product_service.dart'; +const demoProducts = [ + Product(title: 'Bananen', price: 3), + Product(title: 'Äpfel', price: 2), + Product(title: 'Birnen', price: 2.5), + Product(title: 'Kirschen', price: 1.2), +]; + class MockedProductService implements ProductService { @override Future> fetchProducts() async { - return const [ - Product(title: 'Bananen', price: 3), - Product(title: 'Äpfel', price: 2), - Product(title: 'Birnen', price: 2.5), - Product(title: 'Kirschen', price: 1.2), - ]; + return demoProducts; } @override diff --git a/test/total_price_text_test.dart b/test/total_price_text_test.dart new file mode 100644 index 0000000..3bf6f3c --- /dev/null +++ b/test/total_price_text_test.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_redux/flutter_redux.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:redux/redux.dart'; +import 'package:thesis_shop/models/remote_resource.dart'; +import 'package:thesis_shop/redux/state.dart'; +import 'package:thesis_shop/screens/cart/total_price_text.dart'; + +class AppStateMock extends AppState { + AppStateMock() + : super( + isSignedIn: false, + remoteProducts: const RemoteResource.loading(), + productQuantities: {}); + @override + double get totalPrice => 10.0; +} + +void main() { + testWidgets('test total price text', (tester) async { + final store = Store((s, _) => s, initialState: AppStateMock()); + await tester.pumpWidget( + MaterialApp( + home: StoreProvider( + store: store, + child: const TotalPriceText(), + ), + ), + ); + expect(find.text('Gesamtpreis: 10.00€'), findsOneWidget); + }); +}