public void EntityStorageSavedAndLoadsAsIntended() { var intialTrackedEntities = storageUnderTest.LoadTrackedEntities(); Assert.AreEqual(0, intialTrackedEntities.Count); storageUnderTest.AddTrackedEntityIfMissing(new TrackedEntity(EntityType.Item, 1)); storageUnderTest.AddTrackedEntityIfMissing(new TrackedEntity(EntityType.Item, 2)); storageUnderTest.AddTrackedEntityIfMissing(new TrackedEntity(EntityType.Item, 2)); storageUnderTest.AddTrackedEntityIfMissing(new TrackedEntity(EntityType.Item, 3)); storageUnderTest.AddTrackedEntityIfMissing(new TrackedEntity(EntityType.Currency, 43)); storageUnderTest.RemoveTrackedEntity(new TrackedEntity(EntityType.Item, 1)); var otherStorageLoading = new EntityStorage(); var loadedEntities = otherStorageLoading.LoadTrackedEntities(); Assert.AreEqual(3, loadedEntities.Count); Assert.AreEqual(1, loadedEntities.Count(e => e.Id.Equals(2) && e.Type.Equals(EntityType.Item))); Assert.AreEqual(1, loadedEntities.Count(e => e.Id.Equals(3) && e.Type.Equals(EntityType.Item))); Assert.AreEqual(1, loadedEntities.Count(e => e.Id.Equals(43) && e.Type.Equals(EntityType.Currency))); }