public void Save_WithNewValidWocket_InsertsRecord()
        {
            // Arrange
            var fakeWocket1 = new Wocket { Id = 0 };
            var mockObjectStore = new Mock<IObjectStore<Wocket>>();
            mockObjectStore.Setup(x => x.Insert(fakeWocket1)).Verifiable();
            var repository = new WocketRepository(mockObjectStore.Object);

            // Act
            repository.Save(fakeWocket1);

            // Assert
            mockObjectStore.VerifyAll();
        }
        public void Save_WithExistingValidWocket_UpdatesRecord()
        {
            // Arrange
            var oldWocket = new Wocket { Id = 1, Name = "Some wocket" };
            var newWocket = new Wocket { Id = 1, Name = "Some other wocket" };
            var fakeStore = new List<Wocket> { oldWocket };

            var mockObjectStore = new Mock<IObjectStore<Wocket>>();
            mockObjectStore.Setup(x => x.GetEnumerator())
                .Returns(fakeStore.GetEnumerator());
            mockObjectStore.Setup(x => x.Replace(oldWocket, newWocket))
                .Verifiable("wocket was not replaced");

            var repository = new WocketRepository(mockObjectStore.Object);

            // Act
            repository.Save(newWocket);

            // Assert
            mockObjectStore.VerifyAll();
        }