public async Task InitializeAsync_DataIsValid_PropertiesAreSetFromData() { // Arrange var model = new LinkItemViewModel(null, new Mock <ILinkItemRepository>().Object, null, null, null); var linkItem = new LinkItem { ID = 1, Info = "some info", Link = "http://link.com", Name = "some name", Rank = 6, LastUpdatedOn = DateTime.Now.AddDays(-5) }; // Act await model.InitializeAsync(linkItem); // Assert Assert.Equal(linkItem.ID, model.Id); Assert.Equal(linkItem.Info, model.Info); Assert.Equal(linkItem.Link, model.Link); Assert.Equal(linkItem.Name, model.Name); Assert.Equal(linkItem.Rank, model.Rank); Assert.Equal(linkItem.LastUpdatedOn, model.LastUpdatedOn); }
public void CanSave_NameIsNull_IsFalse() { var model = new LinkItemViewModel(null, null, null, null, null); model.Link = "http://somelink.com"; Assert.False(model.CanSave); }
public void CanSave_LinkIsNull_IsFalse() { var model = new LinkItemViewModel(null, null, null, null, null); model.Name = "some name"; Assert.False(model.CanSave); }
public void CanSave_LinkIsInvalidUrl_IsFalse() { var model = new LinkItemViewModel(null, null, null, null, null); model.Name = "some name"; model.Link = "somelink.com"; Assert.False(model.CanSave); }
public void CanSave_LinkAndNameAreValid_IsTrue() { var model = new LinkItemViewModel(null, null, null, null, null); model.Name = "some name"; model.Link = "http://somelink.com"; Assert.True(model.CanSave); }
public async Task InitializeAsync_NewData_CannotSaveCannotDelete() { var model = new LinkItemViewModel(null, new Mock <ILinkItemRepository>().Object, null, null, null); var linkItem = new LinkItem(); await model.InitializeAsync(linkItem); Assert.False(model.CanSave); Assert.False(model.CanDelete); }
public void SettingName_NewValue_NotifiesPropertyChanged() { var model = new LinkItemViewModel(null, null, null, null, null); var harness = new NotifyPropertyChangedHarness(model); model.Name = "some name"; Assert.NotNull(harness.Changes); Assert.Single(harness.Changes); Assert.Equal(nameof(model.Name), harness.Changes[0]); }
public void SettingLink_NewValue_NotifiesPropertyChanged() { var model = new LinkItemViewModel(null, null, null, null, null); var harness = new NotifyPropertyChangedHarness(model); model.Link = "http://link.com"; Assert.NotNull(harness.Changes); Assert.Single(harness.Changes); Assert.Equal(nameof(model.Link), harness.Changes[0]); }
public void SettingInfo_SameValue_DoesNotNotifyPropertyChanged() { var model = new LinkItemViewModel(null, null, null, null, null); var info = "some info"; model.Info = info; var harness = new NotifyPropertyChangedHarness(model); model.Info = info; Assert.Empty(harness.Changes); }
public void SettingLink_SameValue_DoesNotNotifyPropertyChanged() { var model = new LinkItemViewModel(null, null, null, null, null); var link = "http://link.com"; model.Link = link; var harness = new NotifyPropertyChangedHarness(model); model.Link = link; Assert.Empty(harness.Changes); }
public void SettingName_SameValue_DoesNotNotifyPropertyChanged() { var model = new LinkItemViewModel(null, null, null, null, null); var name = "My name"; model.Name = name; var harness = new NotifyPropertyChangedHarness(model); model.Name = name; Assert.Empty(harness.Changes); }
public async Task <LinkItemViewModel> GetLinkItem(int linkId) { _sharedService.WriteLogs("GetLinkItem started by:" + _userSettings.UserName, true); try { var link = await _linkRepository.GetByIdAsync(linkId); Guard.Against.NullLink(linkId, link); var vm = new LinkItemViewModel() { Id = link.Id, Name = link.Name, Url = link.Url, Description = link.Description, IsAdminLink = link.IsAdminLink, IsCoordinatorLink = link.IsCoordinatorLink, IsTeacherLink = link.IsTeacherLink, Sequence = link.Sequence, YearId = link.YearId, Alberta = link.Alberta.HasValue ? link.Alberta.Value : false, BritishColumbia = link.BritishColumbia.HasValue ? link.BritishColumbia.Value : false, Manitoba = link.Manitoba.HasValue ? link.Manitoba.Value : false, NewBrunswick = link.NewBrunswick.HasValue ? link.NewBrunswick.Value : false, NewfoundlandandLabrador = link.NewfoundlandandLabrador.HasValue ? link.NewfoundlandandLabrador.Value : false, NovaScotia = link.NovaScotia.HasValue ? link.NovaScotia.Value : false, Nunavut = link.Nunavut.HasValue ? link.Nunavut.Value : false, Ontario = link.Ontario.HasValue ? link.Ontario.Value : false, PrinceEdwardIsland = link.PrinceEdwardIsland.HasValue ? link.PrinceEdwardIsland.Value : false, Quebec = link.Quebec.HasValue ? link.Quebec.Value : false, Saskatchewan = link.Saskatchewan.HasValue ? link.Saskatchewan.Value : false, YukonTerritory = link.YukonTerritory.HasValue ? link.YukonTerritory.Value : false, NorthwestTerritories = link.NorthwestTerritories.HasValue ? link.NorthwestTerritories.Value : false, CreatedDate = link.CreatedDate, CreatedBy = link.CreatedBy, ModifiedDate = link.ModifiedDate, ModifiedBy = link.ModifiedBy }; return(vm); } catch (Exception ex) { _sharedService.WriteLogs("GetLinkItem failed:" + ex.Message, false); var vm = new LinkItemViewModel(); return(vm); } }
public async Task InitializeAsync_DataIsFromDatabase_IncrementsRank() { var model = new LinkItemViewModel(null, new Mock <ILinkItemRepository>().Object, null, null, null); var rank = 5; var linkItem = new LinkItem { ID = 1, Rank = rank, }; await model.InitializeAsync(linkItem); Assert.Equal(rank + 1, model.Rank); }
public async Task InitializeAsync_DataIsFromDatabase_CanSaveAndCanDelete() { var model = new LinkItemViewModel(null, new Mock <ILinkItemRepository>().Object, null, null, null); var linkItem = new LinkItem { ID = 1, Link = "http://link.com", Name = "some name", }; await model.InitializeAsync(linkItem); Assert.True(model.CanSave); Assert.True(model.CanDelete); }
public async Task InitializeAsync_DataIdIsZero_DoesNotUpdateDatabase() { // Arrange var database = new Mock <ILinkItemRepository>(); var model = new LinkItemViewModel(null, database.Object, null, null, null); var linkItem = new LinkItem { ID = 0 }; // Act await model.InitializeAsync(linkItem); // Assert database.Verify(d => d.SaveItemAsync(linkItem), Times.Never); }
public async Task InitializeAsync_DataIsNotValid_PropertiesAreNotSet() { // Arrange var model = new LinkItemViewModel(null, new Mock <ILinkItemRepository>().Object, null, null, null); // Act await model.InitializeAsync(null); // Assert Assert.Equal(default(int), model.Id); Assert.Equal(default(string), model.Info); Assert.Equal(default(string), model.Link); Assert.Equal(default(string), model.Name); Assert.Equal(default(int), model.Rank); Assert.Equal(default(DateTime), model.LastUpdatedOn); }
public async Task <int> CreateLinkAsync(LinkItemViewModel link) { _sharedService.WriteLogs("CreateLinkAsync started by:" + _userSettings.UserName, true); try { var _link = new Link(); _link.Name = link.Name.Trim(); _link.Url = link.Url.Trim(); _link.Description = string.IsNullOrEmpty(link.Description) ? null : link.Description.Trim(); _link.IsAdminLink = link.IsAdminLink; _link.IsCoordinatorLink = link.IsCoordinatorLink; _link.IsTeacherLink = link.IsTeacherLink; _link.Sequence = link.Sequence; _link.YearId = link.YearId; _link.Alberta = link.Alberta; _link.BritishColumbia = link.BritishColumbia; _link.Manitoba = link.Manitoba; _link.NewBrunswick = link.NewBrunswick; _link.NewfoundlandandLabrador = link.NewfoundlandandLabrador; _link.NovaScotia = link.NovaScotia; _link.Nunavut = link.Nunavut; _link.Ontario = link.Ontario; _link.PrinceEdwardIsland = link.PrinceEdwardIsland; _link.Quebec = link.Quebec; _link.Saskatchewan = link.Saskatchewan; _link.YukonTerritory = link.YukonTerritory; _link.NorthwestTerritories = link.NorthwestTerritories; _link.CreatedDate = DateTime.Now; _link.CreatedBy = _userSettings.UserName; _link.ModifiedDate = DateTime.Now; _link.ModifiedBy = _userSettings.UserName; await _linkRepository.AddAsync(_link); return(_link.Id); } catch (Exception ex) { _sharedService.WriteLogs("CreateLinkAsync failed:" + ex.Message, false); return(0); } }