public void TestResyncEvents() { LMProject p = CreateProject(false); int offset1 = 100, offset2 = 120, offset3 = 150; Period period; List <Period> syncedPeriods; period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(0), Stop = new Time(3000) }); p.Periods.Add(period); period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(3001), Stop = new Time(6000) }); p.Periods.Add(period); period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(6001), Stop = new Time(6500) }); p.Periods.Add(period); /* Test with a list of periods that don't match */ Assert.Throws <IndexOutOfRangeException> ( delegate { p.ResyncEvents(new List <Period> ()); }); syncedPeriods = new List <Period> (); period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(0 + offset1), Stop = new Time(3000 + offset1) }); syncedPeriods.Add(period); period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(3001 + offset2), Stop = new Time(6000 + offset2) }); syncedPeriods.Add(period); period = new Period(); period.Nodes.Add(new TimeNode { Start = new Time(6001 + offset3), Stop = new Time(6500 + offset3) }); syncedPeriods.Add(period); /* 1st Period */ p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(0) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(1500) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(3000) }); /* 2nd Period */ p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(3001) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(4500) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(6000) }); /* 3nd Period */ p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(6001) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(6200) }); p.Timeline.Add(new LMTimelineEvent { EventTime = new Time(6500) }); IList <TimelineEvent> oldTimeline = p.Timeline.Clone(); p.ResyncEvents(syncedPeriods); Assert.AreEqual(oldTimeline [0].EventTime + offset1, p.Timeline [0].EventTime); Assert.AreEqual(oldTimeline [1].EventTime + offset1, p.Timeline [1].EventTime); Assert.AreEqual(oldTimeline [2].EventTime + offset1, p.Timeline [2].EventTime); Assert.AreEqual(oldTimeline [3].EventTime + offset2, p.Timeline [3].EventTime); Assert.AreEqual(oldTimeline [4].EventTime + offset2, p.Timeline [4].EventTime); Assert.AreEqual(oldTimeline [5].EventTime + offset2, p.Timeline [5].EventTime); Assert.AreEqual(oldTimeline [6].EventTime + offset3, p.Timeline [6].EventTime); Assert.AreEqual(oldTimeline [7].EventTime + offset3, p.Timeline [7].EventTime); Assert.AreEqual(oldTimeline [8].EventTime + offset3, p.Timeline [8].EventTime); }