public void GetStateMachine_CacheReturnsValue_ReturnValue() { // Arrange var builder = new StateMachineManagerBuilder() .SetDefault(); var manager = builder.Build(); // Act var stateMachineTask = manager.GetStateMachine("key"); stateMachineTask.Wait(); var stateMachine = stateMachineTask.Result; // Assert Assert.IsNotNull(stateMachine); builder.CacheAdapterMock .Verify(x => x.Get <IStateMachine>(It.IsAny <string>()), Times.Once); builder.TablesUsagePolicyMock .Verify(x => x.IsAvailable, Times.Never); builder.TablesRepositoryMock .Verify(x => x.GetAsync <IStateMachine>( It.IsAny <string>(), It.IsAny <string>()), Times.Never); }
public void DeleteStateMachine_TablesAreNotAvailable_DoNotDeleteValueFromTables() { // Arrange var tablesUsagePolicyMock = new Mock <ITablesUsagePolicy>(); tablesUsagePolicyMock .Setup(x => x.IsAvailable) .Returns(false); var builder = new StateMachineManagerBuilder() .SetDefault() .SetTablesUsagePolicyMock(tablesUsagePolicyMock); var manager = builder.Build(); // Act manager.DeleteStateMachine("key").Wait(); // Assert builder.CacheAdapterMock .Verify(x => x.Delete(It.IsAny <string>()), Times.Once); builder.TablesRepositoryMock .Verify(x => x.DeleteAsync <IStateMachine>( It.IsAny <string>(), It.IsAny <string>()), Times.Never); builder.TablesUsagePolicyMock .Verify(x => x.IsAvailable, Times.Once); }
public void SetStateMachine_AllIsWell() { // Arrange var builder = new StateMachineManagerBuilder() .SetDefault(); var manager = builder.Build(); // Act manager.SetStateMachine("key", null).Wait(); // Assert builder.CacheAdapterMock .Verify(x => x.Set( It.IsAny <string>(), It.IsAny <IStateMachine>(), It.IsAny <TimeSpan?>()), Times.Once); builder.TablesRepositoryMock .Verify(x => x.SetAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <IStateMachine>()), Times.Once); builder.TablesUsagePolicyMock .Verify(x => x.IsAvailable, Times.Once); }
public void DeleteStateMachine_KeyIsNull_ThrowException() { // Arrange var stateMachineManager = new StateMachineManagerBuilder() .SetDefault() .Build(); // Assert Assert.ThrowsAsync <ArgumentNullException>(() => stateMachineManager.DeleteStateMachine(null)); }
public void GetStateMachine_CacheReturnsNull_TablesReturnsNull_ReturnNull() { // Arrange var cacheAdapterMock = new Mock <ICacheAdapter>(); cacheAdapterMock .Setup(x => x.Get <IStateMachine>(It.IsAny <string>())) .Returns <IStateMachine>(null); var tablesRepositoryMock = new Mock <ITablesRepository>(); tablesRepositoryMock .Setup(x => x.GetAsync <IStateMachine>( It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.Factory.StartNew <IStateMachine>(() => null)); var builder = new StateMachineManagerBuilder() .SetDefault() .SetCacheAdapterMock(cacheAdapterMock) .SetTablesRepositoryMock(tablesRepositoryMock); var manager = builder.Build(); // Act var stateMachineTask = manager.GetStateMachine("key"); stateMachineTask.Wait(); var stateMachine = stateMachineTask.Result; // Assert Assert.IsNull(stateMachine); builder.CacheAdapterMock .Verify(x => x.Get <IStateMachine>(It.IsAny <string>()), Times.Once); builder.TablesUsagePolicyMock .Verify(x => x.IsAvailable, Times.Once); builder.TablesRepositoryMock .Verify(x => x.GetAsync <IStateMachine>( It.IsAny <string>(), It.IsAny <string>()), Times.Once); }