public void Add() { var col = Bag.Of <ViewModel>() .WithConvertor((Dto x) => new ViewModel(x)) .WithId(x => x.Id) .Build(); var added = new Dto { Id = 2, Name = "two" }; col.Change(new NotificationEventArgs(added, OperationType.Add)); Assert.AreEqual(1, col.Count); Assert.AreEqual(added, col.First().Dto); }
public void Delete() { var item1 = new ViewModel(new Dto { Id = 1, Name = "one" }); var item2 = new ViewModel(new Dto { Id = 2, Name = "two" }); var col = Bag.Of <ViewModel>() .WithConvertor((Dto x) => new ViewModel(x)) .WithId(x => x.Id) .Loads(() => new ViewModel[] { item1, item2 }) .Build(); var deletedItem = new Dto { Id = 1, Name = "one" }; col.Change(new NotificationEventArgs(deletedItem, OperationType.Delete)); Assert.AreEqual(1, col.Count); Assert.AreEqual("two", col.First().Name); }
public void Edit() { var item1 = new ViewModel(new Dto { Id = 1, Name = "one" }); var item2 = new ViewModel(new Dto { Id = 2, Name = "two" }); var col = Bag.Of <ViewModel>() .WithConvertor((Dto x) => new ViewModel(x)) .WithId(x => x.Id) .Loads(() => new ViewModel[] { item1, item2 }) .Build(); var item3 = new Dto { Id = 2, Name = "updated two" }; col.Change(new NotificationEventArgs(item3, OperationType.Update)); Assert.AreEqual(2, col.Count); Assert.AreEqual(2, col.Last().Id); Assert.AreEqual("updated two", col.Last().Name); }
public ViewModel(Dto dto) { Dto = dto; }