From 22dabda987fcc3217274831df8c2a6e42a60bd7d Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 19 Oct 2018 20:50:24 +0200 Subject: [PATCH] Add Save and Load Functions to SimService --- lib/service/simulation_service.dart | 8 ++++++-- test/service/simulation_service_test.dart | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 test/service/simulation_service_test.dart diff --git a/lib/service/simulation_service.dart b/lib/service/simulation_service.dart index 5f538ec..8e0c14f 100644 --- a/lib/service/simulation_service.dart +++ b/lib/service/simulation_service.dart @@ -9,9 +9,10 @@ class SimulationService { static final int DEFAULT_GRID_SIZE = 50; final EngineService _engine; - final Simulation _sim = Simulation(DEFAULT_GRID_SIZE, DEFAULT_GRID_SIZE); + final Simulation _sim; - SimulationService(this._engine) { + SimulationService(this._engine, [Simulation sim]) + : this._sim = sim ?? Simulation(DEFAULT_GRID_SIZE, DEFAULT_GRID_SIZE) { _engine.simulation = _sim; _sim.addRandomPattern(amount: 15, dispersal: 5); } @@ -36,4 +37,7 @@ class SimulationService { void toggleGrid() { _sim.renderEdges = !_sim.renderEdges; } + + void save() => _sim.saveSnapshot(); + void load() => _sim.loadSnapshot(); } diff --git a/test/service/simulation_service_test.dart b/test/service/simulation_service_test.dart new file mode 100644 index 0000000..3816099 --- /dev/null +++ b/test/service/simulation_service_test.dart @@ -0,0 +1,23 @@ +import 'package:rules_of_living/service/engine_service.dart'; +import 'package:rules_of_living/service/simulation_service.dart'; +import 'package:rules_of_living/src/Simulation.dart'; +import 'package:test/test.dart'; +import 'package:mockito/mockito.dart'; + +class MockSimulation extends Mock implements Simulation {} + +class MockEngineService extends Mock implements EngineService {} + +void main() { + SimulationService sut; + MockSimulation mockSim = MockSimulation(); + setUp(() => sut = SimulationService(MockEngineService(), mockSim)); + test("calling save calls through to Simulation.saveSnapshot", () { + sut.save(); + verify(mockSim.saveSnapshot()); + }); + test("calling load calls through to Simulation.loadSnapshot", () { + sut.load(); + verify(mockSim.loadSnapshot()); + }); +}