mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
remove all system related data from shuttle repository
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { ShuttleGetterSetterRepository } from "./ShuttleGetterSetterRepository";
|
import { ShuttleGetterSetterRepository } from "./ShuttleGetterSetterRepository";
|
||||||
import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities";
|
import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop } from "../entities/entities";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An unoptimized in memory repository.
|
* An unoptimized in memory repository.
|
||||||
@@ -7,7 +7,6 @@ import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } f
|
|||||||
* switching to another data store later anyways)
|
* switching to another data store later anyways)
|
||||||
*/
|
*/
|
||||||
export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetterRepository {
|
export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetterRepository {
|
||||||
private system: ISystem | null = null;
|
|
||||||
private stops: IStop[] = [];
|
private stops: IStop[] = [];
|
||||||
private routes: IRoute[] = [];
|
private routes: IRoute[] = [];
|
||||||
private shuttles: IShuttle[] = [];
|
private shuttles: IShuttle[] = [];
|
||||||
@@ -16,10 +15,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
|
|||||||
|
|
||||||
private subscribers: ((eta: IEta) => void)[] = [];
|
private subscribers: ((eta: IEta) => void)[] = [];
|
||||||
|
|
||||||
public async getSystemIfExists() {
|
|
||||||
return this.system;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async getStopsBySystemId(systemId: string) {
|
public async getStopsBySystemId(systemId: string) {
|
||||||
return this.stops.filter(stop => stop.systemId === systemId);
|
return this.stops.filter(stop => stop.systemId === systemId);
|
||||||
}
|
}
|
||||||
@@ -95,10 +90,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async updateSystem(system: ISystem): Promise<void> {
|
|
||||||
this.system = system;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async addOrUpdateRoute(route: IRoute): Promise<void> {
|
public async addOrUpdateRoute(route: IRoute): Promise<void> {
|
||||||
const index = this.routes.findIndex((r) => r.id === route.id);
|
const index = this.routes.findIndex((r) => r.id === route.id);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
@@ -166,16 +157,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
|
|||||||
return await this.removeEntityByMatcherIfExists((value) => value.id === entityId, arrayToSearchIn);
|
return await this.removeEntityByMatcherIfExists((value) => value.id === entityId, arrayToSearchIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async removeSystemIfExists(): Promise<ISystem | null> {
|
|
||||||
if (this.system !== null) {
|
|
||||||
const system = this.system;
|
|
||||||
this.system = null;
|
|
||||||
return system;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async removeRouteIfExists(routeId: string): Promise<IRoute | null> {
|
public async removeRouteIfExists(routeId: string): Promise<IRoute | null> {
|
||||||
return await this.removeEntityByIdIfExists(routeId, this.routes);
|
return await this.removeEntityByIdIfExists(routeId, this.routes);
|
||||||
}
|
}
|
||||||
@@ -202,10 +183,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
|
|||||||
}, this.etas);
|
}, this.etas);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async clearSystemData() {
|
|
||||||
this.system = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async clearShuttleData(): Promise<void> {
|
public async clearShuttleData(): Promise<void> {
|
||||||
this.shuttles = [];
|
this.shuttles = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import {
|
|||||||
generateMockRoutes,
|
generateMockRoutes,
|
||||||
generateMockShuttles,
|
generateMockShuttles,
|
||||||
generateMockStops,
|
generateMockStops,
|
||||||
generateMockSystems
|
|
||||||
} from "../testHelpers/mockDataGenerators";
|
} from "../testHelpers/mockDataGenerators";
|
||||||
|
|
||||||
// For repositories created in the future, reuse core testing
|
// For repositories created in the future, reuse core testing
|
||||||
@@ -21,23 +20,6 @@ describe("UnoptimizedInMemoryRepository", () => {
|
|||||||
repository = new UnoptimizedInMemoryShuttleRepository();
|
repository = new UnoptimizedInMemoryShuttleRepository();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("getSystem", () => {
|
|
||||||
test("gets the system stored in the repository", async () => {
|
|
||||||
const mockSystems = generateMockSystems();
|
|
||||||
await repository.updateSystem(mockSystems[0]);
|
|
||||||
|
|
||||||
const result = await repository.getSystemIfExists();
|
|
||||||
|
|
||||||
expect(result).toEqual(mockSystems[0]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("gets null if there is no data associated with the system", async () => {
|
|
||||||
const result = await repository.getSystemIfExists();
|
|
||||||
|
|
||||||
expect(result).toEqual(null);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("getStopsBySystemId", () => {
|
describe("getStopsBySystemId", () => {
|
||||||
test("gets stops by system ID", async () => {
|
test("gets stops by system ID", async () => {
|
||||||
const mockStops = generateMockStops();
|
const mockStops = generateMockStops();
|
||||||
@@ -303,18 +285,6 @@ describe("UnoptimizedInMemoryRepository", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("updateSystem", () => {
|
|
||||||
test("adds a new system", async () => {
|
|
||||||
const mockSystems = generateMockSystems();
|
|
||||||
const newSystem = mockSystems[0];
|
|
||||||
|
|
||||||
await repository.updateSystem(newSystem);
|
|
||||||
|
|
||||||
const result = await repository.getSystemIfExists();
|
|
||||||
expect(result).toEqual(newSystem);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("addOrUpdateRoute", () => {
|
describe("addOrUpdateRoute", () => {
|
||||||
test("adds a new route if nonexistent", async () => {
|
test("adds a new route if nonexistent", async () => {
|
||||||
const mockRoutes = generateMockRoutes();
|
const mockRoutes = generateMockRoutes();
|
||||||
@@ -440,25 +410,6 @@ describe("UnoptimizedInMemoryRepository", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("removeSystemIfExists", () => {
|
|
||||||
test("removes system given ID", async () => {
|
|
||||||
const mockSystems = generateMockSystems();
|
|
||||||
await repository.updateSystem(mockSystems[0]);
|
|
||||||
|
|
||||||
await repository.removeSystemIfExists();
|
|
||||||
|
|
||||||
const expectedSystem = await repository.getSystemIfExists();
|
|
||||||
expect(expectedSystem).toBeNull();
|
|
||||||
});
|
|
||||||
|
|
||||||
test("does nothing if system doesn't exist", async () => {
|
|
||||||
await repository.removeSystemIfExists();
|
|
||||||
|
|
||||||
const expectedSystem = await repository.getSystemIfExists();
|
|
||||||
expect(expectedSystem).toBeNull();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("removeRouteIfExists", () => {
|
describe("removeRouteIfExists", () => {
|
||||||
test("removes route given ID", async () => {
|
test("removes route given ID", async () => {
|
||||||
const systemId = "1";
|
const systemId = "1";
|
||||||
@@ -620,19 +571,6 @@ describe("UnoptimizedInMemoryRepository", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("clearSystemData", () => {
|
|
||||||
test("clears system data when the repository has data", async () => {
|
|
||||||
const mockSystems = generateMockSystems();
|
|
||||||
const system = mockSystems[0];
|
|
||||||
await repository.updateSystem(system);
|
|
||||||
|
|
||||||
await repository.clearSystemData();
|
|
||||||
|
|
||||||
const result = await repository.getSystemIfExists();
|
|
||||||
expect(result).toEqual(null);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe("clearShuttleData", () => {
|
describe("clearShuttleData", () => {
|
||||||
test("clears all shuttles from the repository", async () => {
|
test("clears all shuttles from the repository", async () => {
|
||||||
const mockShuttles = generateMockShuttles();
|
const mockShuttles = generateMockShuttles();
|
||||||
|
|||||||
Reference in New Issue
Block a user