public void SetValue_WhenCalled_SetsProperty() { var cache = new ReflectiveCache(); var basicObject = new DataStatusItem { DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now }; var type = cache.Get(basicObject); var prop = type.GetProperties().Where(x => x.Name == nameof(DataStatusItem.DataItemID)).First(); prop.SetValue(basicObject, 2); Assert.AreEqual(2, basicObject.DataItemID); }
public async Task VisitAsync_WhenGivenComplexObject_IsCalledCorrectNumberOfTimes() { var i = 0; var visitor = new ReflectivePropertyVisitor <DataStatusItem>(x => { i++; return(Task.CompletedTask); }); var testObject = new { DataStatusItem = new List <DataStatusItem> { new DataStatusItem { DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now }, new DataStatusItem { DataItemID = 2, DataItemCurrentStatusID = 2, DataItemStatusID = 2, DateEffective = DateTime.Now }, }, MySubThingy = new { AnotherSubThingy = new { Child = new DataStatusItem { } } }, Brand = 1, DataType = 2, ProcessingStatus = 3, IntList = new List <int> { 11, 22, 33 } }; var basicObject = new DataStatusItem { DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now }; await visitor.VisitAsync(testObject); await visitor.VisitAsync(basicObject); Assert.AreEqual(4, i); }