public void Addfile_to_Meeting_and_modify_File_in_andriod_Must_Work_Correctly() { #region Arrange //Create meeting by web with file var actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); CreateWorkingMeeting(DateTime.Now.AddHours(4), 1); var currentMeeting = actionController.GetAll().First(); currentMeeting.Decisions = "this is test decision for our project"; currentMeeting.Details = "this test details creation for our project"; currentMeeting.Files = new List<FileDto> { new FileDto { ContentType = ".jpeg", Content = "File 1 From Web" }, new FileDto { ContentType = ".kk", Content = "File 2 From Web" } }; actionController.PutMeeting(currentMeeting); // Get By andriod actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); var result = actionController.GetAll((int)AppType.AndriodApp); #endregion #region Act // Post Modified Meeting with fileList change from andriod var modifiedMeeting = result.First().Meeting; modifiedMeeting.Files.Remove(modifiedMeeting.Files.First()); modifiedMeeting.Files.Add(new FileDto { ContentType = ".ss", Content = "File from Andriod" }); var meetingSyncRequest = new MeetingSyncRequest { AppType = (int)AppType.AndriodApp, Items = new List<MeetingSyncItem> { new MeetingSyncItem { Meeting = modifiedMeeting, SyncId = result.First().SyncId, ActionType = (int)EntityActionType.Modify } } }; actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); actionController.PostMeetings(meetingSyncRequest, "SyncByMe"); #endregion #region Assert //Get result actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); var finalResult = actionController.GetAll(); #endregion }
public void PostMeetings_SyncFromDevice_Should_CreateMeeting_Working_Or_NoneWorking_ByAndriod() { #region Arrange var workingMeetingDto = createBaseMeetingDto(DateTime.Now, 1); workingMeetingDto.MeetingType = (int)MeetingType.Working; var noneWorkingMeetingDto = createBaseMeetingDto(DateTime.Now.AddHours(4), 1); noneWorkingMeetingDto.MeetingType = (int)MeetingType.NonWorking; var meetingSyncRequest = new MeetingSyncRequest { AppType = (int)AppType.AndriodApp, Items = new List<MeetingSyncItem> { new MeetingSyncItem { Meeting = workingMeetingDto, SyncId = Guid.NewGuid(), ActionType = (int)EntityActionType.Create }, new MeetingSyncItem { Meeting = noneWorkingMeetingDto, SyncId = Guid.NewGuid(), ActionType = (int)EntityActionType.Create } } }; #endregion #region Act var actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); actionController.PostMeetings(meetingSyncRequest, "forEhsan"); #endregion #region Assert var context=new RMSContext(); // var assertController = ServiceLocator.Current.GetInstance<MeetingsController>(); var actualMembers = context.Meetings.ToList(); if(actualMembers.Count!=2) Assert.Fail("it didnt create by sync correctly"); if(actualMembers.Count(r=>meetingSyncRequest.Items.Select(i=>i.SyncId).Contains(r.SyncId))!=2) Assert.Fail("Sync Id didnt set correctly"); if (actualMembers.Count(r => r.ActionType==EntityActionType.Create)!=2) Assert.Fail("ActionType didnt set correctly"); if(actualMembers.Count(r => r.SyncedWithAndriodApp)!=2) Assert.Fail("Sync with andriod didnt set correctly"); #endregion }
public void PostMeetings_SyncFromDevice_Should_ModifyMeeting_Working_Or_NoneWorking_ByAndriod_WithCreationSyncing() { #region Arrange var workingMeetingDto = createBaseMeetingDto(DateTime.Now, 1); workingMeetingDto.MeetingType = (int)MeetingType.Working; var noneWorkingMeetingDto = createBaseMeetingDto(DateTime.Now.AddHours(4), 1); noneWorkingMeetingDto.MeetingType = (int)MeetingType.NonWorking; var meetingSyncRequest = new MeetingSyncRequest { AppType = (int)AppType.AndriodApp, Items = new List<MeetingSyncItem> { new MeetingSyncItem { Meeting = workingMeetingDto, SyncId = Guid.NewGuid(), ActionType = (int)EntityActionType.Create }, new MeetingSyncItem { Meeting = noneWorkingMeetingDto, SyncId = Guid.NewGuid(), ActionType = (int)EntityActionType.Create } } }; var arrangeController = ServiceLocator.Current.GetInstance<MeetingsController>(); arrangeController.PostMeetings(meetingSyncRequest, "forEhsan"); #endregion #region Act var expectedModifiedMeeting = meetingSyncRequest.Items.First(); expectedModifiedMeeting.ActionType = (int)EntityActionType.Modify; expectedModifiedMeeting.Meeting.Decisions = "ksldfsdfsdfsdf"; expectedModifiedMeeting.Meeting.Files = new List<FileDto> { new FileDto { ContentType = ".x", Content = Utility.Base64ConvertedFile } }; var actionController = ServiceLocator.Current.GetInstance<MeetingsController>(); actionController.PostMeetings(new MeetingSyncRequest { AppType = (int) AppType.AndriodApp, Items = new List<MeetingSyncItem> { expectedModifiedMeeting } }, "ehsan"); #endregion #region Assert //var context = new RMSContext(); //var actualMembers = context.Meetings.ToList(); //if (actualMembers.Count != 2) // Assert.Fail("it didnt create by sync correctly"); //if (actualMembers.Count(r => meetingSyncRequest.Items.Select(i => i.SyncId).Contains(r.SyncId)) != 2) // Assert.Fail("Sync Id didnt set correctly"); //if (actualMembers.Count(r => r.ActionType == EntityActionType.Create) != 2) // Assert.Fail("ActionType didnt set correctly"); //if (actualMembers.Count(r => r.SyncedWithAndriodApp) != 2) // Assert.Fail("Sync with andriod didnt set correctly"); #endregion }
public void Sync(MeetingSyncRequest syncReuest) { if (syncReuest == null) throw new ArgumentException("syncRequest can't be null", "syncReuest"); var appType = (AppType)syncReuest.AppType; foreach (var syncItem in syncReuest.Items) { if (syncItem.ActionType == (int)EntityActionType.Create) Create(syncItem.Meeting, appType, syncItem.SyncId); if (syncItem.ActionType == (int)EntityActionType.Modify) Modify(syncItem.Meeting, appType, syncItem.SyncId); if (syncItem.ActionType == (int)EntityActionType.Delete) Delete(syncItem.Meeting, appType, syncItem.SyncId); } }