public void ShouldThrowWhenUpdatingTwoInstancesOfSameDataAtTheSameTime() { // Arrange IProcessManagerData data1 = new TestData { CorrelationId = _correlationId, Name = "TestData1" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); processManagerFinder.InsertData(data1); var foundData1 = (MemoryData <TestData>)processManagerFinder.FindData <TestData>(_mapper, new Message(_correlationId)); var foundData2 = (MemoryData <TestData>)processManagerFinder.FindData <TestData>(_mapper, new Message(_correlationId)); var foundData1Temp = new MemoryData <IProcessManagerData> { Data = foundData1.Data, Version = foundData1.Version }; var foundData2Temp = new MemoryData <IProcessManagerData> { Data = foundData2.Data, Version = foundData2.Version }; processManagerFinder.UpdateData(foundData1Temp); // first update should be fine // Act / Assert Assert.Throws <ArgumentException>(() => processManagerFinder.UpdateData(foundData2Temp)); // second update should fail }
public void ShouldThrowWhenUpdatingDataThatDoesNotExist() { // Arrange IProcessManagerData data = new TestData { CorrelationId = _correlationId, Name = "TestData" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); // Act / Assert Assert.Throws <ArgumentException>(() => processManagerFinder.UpdateData(new MemoryData <IProcessManagerData> { Data = data })); }
public void ShouldUpdateData() { // Arrange IProcessManagerData data = new TestData { CorrelationId = _correlationId, Name = "TestData" }; IProcessManagerData dataUpdated = new TestData { CorrelationId = _correlationId, Name = "TestDataUpdated" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); processManagerFinder.InsertData(data); // Act processManagerFinder.UpdateData(new MemoryData<IProcessManagerData> { Data = dataUpdated, Version = 1}); // Assert Assert.Equal("TestDataUpdated", processManagerFinder.FindData<TestData>(_mapper, new Message(_correlationId)).Data.Name); }
public void ShouldUpdateData() { // Arrange IProcessManagerData data = new TestData { CorrelationId = _correlationId, Name = "TestData" }; IProcessManagerData dataUpdated = new TestData { CorrelationId = _correlationId, Name = "TestDataUpdated" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); processManagerFinder.InsertData(data); // Act processManagerFinder.UpdateData(new MemoryData <IProcessManagerData> { Data = dataUpdated, Version = 1 }); // Assert Assert.Equal("TestDataUpdated", processManagerFinder.FindData <TestData>(_mapper, new Message(_correlationId)).Data.Name); }
public void ShouldThrowWhenUpdatingTwoInstancesOfSameDataAtTheSameTime() { // Arrange IProcessManagerData data1 = new TestData { CorrelationId = _correlationId, Name = "TestData1" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); processManagerFinder.InsertData(data1); var foundData1 = (MemoryData<TestData>) processManagerFinder.FindData<TestData>(_mapper, new Message(_correlationId)); var foundData2 = (MemoryData<TestData>) processManagerFinder.FindData<TestData>(_mapper, new Message(_correlationId)); var foundData1Temp = new MemoryData<IProcessManagerData> { Data = foundData1.Data, Version = foundData1.Version}; var foundData2Temp = new MemoryData<IProcessManagerData> { Data = foundData2.Data, Version = foundData2.Version }; processManagerFinder.UpdateData(foundData1Temp); // first update should be fine // Act / Assert Assert.Throws<ArgumentException>(() => processManagerFinder.UpdateData(foundData2Temp)); // second update should fail }
public void ShouldThrowWhenUpdatingDataThatDoesNotExist() { // Arrange IProcessManagerData data = new TestData { CorrelationId = _correlationId, Name = "TestData" }; IProcessManagerFinder processManagerFinder = new InMemoryProcessManagerFinder(string.Empty, string.Empty); // Act / Assert Assert.Throws<ArgumentException>(() => processManagerFinder.UpdateData(new MemoryData<IProcessManagerData> { Data = data })); }