예제 #1
0
 public void SetUp()
 {
     _source       = new ObservableCollection <int>(new[] { 1, 2, 3 });
     _deferTime    = TimeSpan.FromMilliseconds(10);
     _deferredView = new DeferredView <int>(_source, _deferTime);
     _changes.Clear();
 }
예제 #2
0
        public static void DeferredContentShouldRender()
        {
            Tag          done     = new Tag("span").Text("done");
            int          runCount = 0;
            DeferredView view     = new DeferredView("Monkey", (dv) =>
            {
                // long processing
                Thread.Sleep(1000);
                runCount++;
                return(done);
            },
                                                     () =>
            {
                return(new Tag("span").Text("initial"));
            }, 300);

            Expect.AreEqual(0, runCount, "runcount mismatch");

            string initial = view.Render().ToHtmlString();

            OutLineFormat("Should be initial: \r\n{0}", initial);
            FileInfo compareToFile = new FileInfo(string.Format(".\\{0}_initial.txt", MethodBase.GetCurrentMethod().Name));

            Compare(view.Content, compareToFile);

            OutLine("waiting 2 seconds");
            Thread.Sleep(2000);
            Expect.AreEqual(1, runCount, "runcount mismatch");

            string doneHtml = view.Render().ToHtmlString();

            OutLineFormat("Should be done: \r\n{0}", doneHtml);
            compareToFile = new FileInfo(string.Format(".\\{0}_done.txt", MethodBase.GetCurrentMethod().Name));
            Compare(view.Content, compareToFile);

            string retreived = DeferredViewController.GetContentString(view.Name);

            Expect.AreEqual(1, runCount);
            string reretrieved = DeferredViewController.GetContentString(view.Name, true);

            Expect.AreEqual(retreived, reretrieved);
            Expect.AreEqual(2, runCount);
        }