public async Task TitleOnce() { var meeting = MeetingHelpers.CreateMeeting(); var mvm = new MeetingPageViewModel(null, meeting); var bogus = mvm.MeetingTitle; mvm.StartMeetingUpdates.Execute(null); await TestUtils.SpinWaitAreEqual("Meeting1", () => mvm.MeetingTitle); }
public async Task LoadMeetingOnceAfterOneTrigger() { var meeting = MeetingHelpers.CreateMeeting(); var mvm = new MeetingPageViewModel(null, meeting); var bogus = mvm.MeetingTitle; mvm.StartMeetingUpdates.Execute(null); await TestUtils.SpinWaitAreEqual("Meeting1", () => mvm.MeetingTitle); Assert.AreEqual(1, meeting.NumberOfTimesFetched); }
public async Task MeetingUpdated() { // Add a new talk when we have the third look (or so). var mr = new dummyMeetingChangerRef((meeting, count) => { if (count > 1) { var t = meeting.Sessions[0].Talks .Concat(new ITalk[] { new dummyTalk() }) .ToArray(); var s = (meeting as dummyMeeting).Sessions[0] as dummySession; s.Talks = t; } return(meeting); }); var m = await mr.GetMeeting(); await Blobs.LocalStorage.InsertObject(mr.AsReferenceString(), m); Assert.AreEqual(1, m.Sessions[0].Talks.Length); // Go grab the meeting now. It should show up twice. // Since we are running with the test scheduler, we need to advance things, or nothing // will work! var mvm = new MeetingPageViewModel(null, mr); // First update: await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); Assert.AreEqual(1, mr.Count); Assert.AreEqual(1, mvm.Talks.Count); await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); Debug.WriteLine("About to check the #"); Assert.AreEqual(2, mvm.Talks.Count); }
public async Task EmptyMeeting() { var meeting = MeetingHelpers.CreateEmptyMeeting(); var mvm = new MeetingPageViewModel(null, meeting); Assert.IsFalse(mvm.MeetingIsReadyForDisplay); var bogus1 = mvm.MeetingIsEmpty; var bogus2 = mvm.MeetingIsReadyForDisplay; mvm.StartMeetingUpdates.Execute(null); await TestUtils.SpinWaitAreEqual(true, () => mvm.MeetingIsReadyForDisplay); await TestUtils.SpinWaitAreEqual(true, () => mvm.MeetingIsEmpty); }
public async Task CheckMeetingAgendaCached() { // Brand new meeting fetch var meeting = MeetingHelpers.CreateMeeting(); var mvm = new MeetingPageViewModel(null, meeting); // TODO: This lien causes a hang in the test. // Wait for something to happen to the talks... var s = await mvm.Talks.Changed .FirstAsync(); var m = await Blobs.LocalStorage.GetObject <IMeeting>(meeting.AsReferenceString()).FirstAsync(); Assert.IsNotNull(m); Assert.AreEqual("Meeting 1", m.Title); }
public async Task GetMeetingOnce() { // Brand new meeting fetch var meeting = MeetingHelpers.CreateMeeting(); var mvm = new MeetingPageViewModel(null, meeting); // This line causes a hang. :( // Wait for something to happen to the talks... var s = await mvm.Talks.Changed .FirstAsync(); Assert.IsNotNull(s); Assert.AreEqual(1, mvm.Talks.Count); Assert.AreEqual(1, meeting.NumberOfTimesFetched); }
public async Task MeetingAutoUpdated() { // Add a new talk when we have the third look (or so). var mr = new dummyMeetingChangerRef((meeting, count) => { var mMod = (meeting as dummyMeeting); mMod.StartTime = DateTime.Now - TimeSpan.FromMinutes(1); mMod.EndTime = DateTime.Now + TimeSpan.FromMinutes(10); return(meeting); }); var m = await mr.GetMeeting(); await Blobs.LocalStorage.InsertObject(mr.AsReferenceString(), m); Assert.AreEqual(1, m.Sessions[0].Talks.Length); // Go grab the meeting now. It should show up twice. // Since we are running with the test scheduler, we need to advance things, or nothing // will work! var mvm = new MeetingPageViewModel(null, mr); // TODO: the below async doesn't work. Why not? Never returns. // First update: await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); Assert.AreEqual(1, mr.Count); Assert.AreEqual(1, mvm.Talks.Count); await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); await mvm.Talks.Changed .FirstAsync(); Debug.WriteLine("About to check the #"); Assert.AreEqual(2, mvm.Talks.Count); }
public async Task GetMeetingFromCache() { // Install the meeting in the cache. var meeting = MeetingHelpers.CreateMeeting(); await Blobs.LocalStorage.InsertObject(meeting.AsReferenceString(), await meeting.GetMeeting()).FirstAsync(); // Go grab the meeting now. It should show up twice. var mvm = new MeetingPageViewModel(null, meeting); // TODO: This await never returns below. Find a way to look // for talks updated! // CLear, and then set await mvm.Talks.Changed.FirstAsync(); await mvm.Talks.Changed.FirstAsync(); // Clear and then set. await mvm.Talks.Changed.FirstAsync(); await mvm.Talks.Changed.FirstAsync(); Assert.AreEqual(1, mvm.Talks.Count); Assert.AreEqual(2, meeting.NumberOfTimesFetched); }