public void MetaDataProvider_resolves_valid_meta_data() { SetupDependencies(); var myTestEntity = new MyTestEntity(); var expectedDate = new DateTime(2017, 01, 01, 12, 30, 00); _metaDataProvider = new MetaDataProvider(_clockProviderMock.Object); _clockProviderMock.Setup(clockProvider => clockProvider.DateTime).Returns(expectedDate); _metaDataProvider.ResolveMetaData(myTestEntity, true); Assert.AreEqual(expectedDate, myTestEntity.Created); Assert.AreEqual(expectedDate, myTestEntity.Modified); Assert.AreEqual(true, myTestEntity.IsActive); var expectedNewDate = new DateTime(2017, 01, 01, 13, 30, 00); _clockProviderMock.Setup(clockProvider => clockProvider.DateTime).Returns(expectedNewDate); myTestEntity.IsActive = false; _metaDataProvider.ResolveMetaData(myTestEntity, false); Assert.AreEqual(expectedDate, myTestEntity.Created); Assert.AreEqual(expectedNewDate, myTestEntity.Modified); Assert.AreEqual(false, myTestEntity.IsActive); }
public void Run_throws_Exception() { var expectedDate = new DateTime(2018, 01, 01); var myEntity = new MyTestEntity(); var systemUnderTest = ConditionalException <MyTestEntity> .Create( async(myTestEntity) => await Task.FromResult(myTestEntity.Created.Equals(expectedDate)), typeof(InvalidTimeZoneException)); Assert.ThrowsAsync <InvalidTimeZoneException>(async() => await systemUnderTest.Run(myEntity)); }
public void Update_fails() { SetupDependencies(new List <MyTestEntity>()); var myAddedTestEntity = new MyTestEntity { Id = 1 }; Assert.Throws <ArgumentException>(() => { _systemUnderTest.Update(myAddedTestEntity); _systemUnderTest.Update(myAddedTestEntity); }); }
public void MetaDataProvider_throws() { SetupDependencies(); var myTestEntity = new MyTestEntity(); _metaDataProvider = new MetaDataProvider(_clockProviderMock.Object); Assert.Throws <ArgumentNullException>(() => { _metaDataProvider.ResolveMetaData(default(MyTestEntity), false); }); Assert.Throws <ArgumentNullException>(() => { _metaDataProvider.ResolveMetaData(myTestEntity, false); }); _clockProviderMock.Setup(clockProvider => clockProvider.DateTime).Returns(new DateTime(2017, 01, 01, 12, 30, 0)); Assert.Throws <InvalidOperationException>(() => { _metaDataProvider.ResolveMetaData(myTestEntity, false); }); }
public void Update_success() { SetupDependencies(new List <MyTestEntity>()); var myAddedTestEntity = new MyTestEntity { Id = 1 }; _systemUnderTest.Update(myAddedTestEntity); var addedInMemoryListItem = _systemUnderTest["MyTestEntity::1"]; Assert.IsNotNull( addedInMemoryListItem); Assert.AreEqual(ItemState.Updated, addedInMemoryListItem.ItemState); }
public void RunConditionalPattern_when_entity_is_null_throws_exception() { var expectedDate = new DateTime(2018, 01, 01); var myTestEntity = new MyTestEntity(); Assert.ThrowsAsync <ArgumentNullException>(async() => { await ConditionalPattern <MyTestEntity> .RunConditionalPattern(null, async(testEntity) => await Task.FromResult(testEntity.Created.Equals(expectedDate)), async(testEntity) => { await Task.Delay(1); return(myTestEntity); }, async(testEntity) => { await Task.Delay(1); }); }); }
public async Task RunConditionalPattern_with_one_patternConditionalDelegates_calls_run() { _conditionalExceptionMock = new Mock <IConditionalException <MyTestEntity> >(); _conditionalExceptionMock.Setup(a => a.Run(It.IsAny <MyTestEntity>())).Returns(Task.FromResult(true)).Verifiable(); var myTestEntity = new MyTestEntity(); await ConditionalPattern <MyTestEntity> .RunConditionalPattern(myTestEntity, async (testEntity) => { await Task.Delay(1); return(testEntity); }, async (testEntity) => { await Task.Delay(1); }, _conditionalExceptionMock.Object); _conditionalExceptionMock.Verify(a => a.Run(It.IsAny <MyTestEntity>()), Times.Exactly(1)); }
public async Task RunConditionalPattern_when_patternConditionalDelegates_invokes_passDelegate() { _conditionalExceptionMock = new Mock <IConditionalException <MyTestEntity> >(); _conditionalExceptionMock.Setup(a => a.Run(It.IsAny <MyTestEntity>())).Returns(Task.FromResult(true)); var myTestEntity = new MyTestEntity(); await ConditionalPattern <MyTestEntity> .RunConditionalPattern(myTestEntity, async (testEntity) => { await Task.Delay(1); Assert.Pass(); return(testEntity); }, async (testEntity) => { await Task.Delay(1); Assert.Fail(); }, _conditionalExceptionMock.Object); }
public async Task RunConditionalPattern_when_entity_is_not_null_calls_fail() { var expectedDate = new DateTime(2018, 01, 01); var myTestEntity = new MyTestEntity(); var failCalled = false; await ConditionalPattern <MyTestEntity> .RunConditionalPattern(myTestEntity, async (testEntity) => await Task.FromResult(testEntity.Created.Equals(expectedDate)), async (testEntity) => { await Task.Delay(1); return(myTestEntity); }, async (testEntity) => { failCalled = true; await Task.Delay(1); }); Assert.True(failCalled); }
public void RunConditionalPattern_when_patternConditionalDelegates_throws_exception() { _conditionalExceptionMock = new Mock <IConditionalException <MyTestEntity> >(); _conditionalExceptionMock.Setup(a => a.Run(It.IsAny <MyTestEntity>())).Throws <InvalidOperationException>(); var myTestEntity = new MyTestEntity(); Assert.ThrowsAsync <InvalidOperationException>(async() => { await ConditionalPattern <MyTestEntity> .RunConditionalPattern(myTestEntity, async(testEntity) => { await Task.Delay(1); Assert.Fail(); return(testEntity); }, async(testEntity) => { await Task.Delay(1); Assert.Pass(); }, _conditionalExceptionMock.Object); }); }