예제 #1
0
        public void ViewFacedeSemaphoreTest()
        {
            int taskNumber = 0;
            var facade     = new AVRFacadeStub(123);

            const int taskCount = 10;
            Action    act       = () =>
            {
                var number = Interlocked.Increment(ref taskNumber);
                Console.WriteLine("->View task {0} started", number);
                ViewDTO model = facade.GetCachedView("xxx", -1, "en");
                Console.WriteLine("<-View task {0} finished", number);
            };

            Task[] tasks = new Task[taskCount];
            for (int i = 0; i < taskCount; i++)
            {
                tasks[i] = new Task(act);
            }
            foreach (var task in tasks)
            {
                task.Start();
            }
            Task.WaitAll(tasks);
        }
예제 #2
0
        public void ViewFacedeTest()
        {
            var facade = new AVRFacadeStub(123);

            ViewDTO model = facade.GetCachedView("xxx", -1, "en");

            Assert.IsNotNull(model);
            Assert.IsNotNull(model.BinaryViewHeader);
            Assert.IsNotNull(model.Header);
            Assert.IsNotNull(model.BodyPackets);

            byte[]  unzippedViewStructure = BinaryCompressor.Unzip(model.BinaryViewHeader);
            string  xmlViewStructure      = BinarySerializer.DeserializeToString(unzippedViewStructure);
            AvrView view       = AvrViewSerializer.Deserialize(xmlViewStructure);
            string  viewXmlNew = AvrViewSerializer.Serialize(view);

            Assert.AreEqual(SerializedViewStub.ViewXml, viewXmlNew);

            BaseTableDTO unzippedDTO = BinaryCompressor.Unzip(model);
            DataTable    viewData    = BinarySerializer.DeserializeToTable(unzippedDTO);
            string       dataXmlNew  = DataTableSerializer.Serialize(viewData);

            Assert.AreEqual(SerializedViewStub.DataXml, dataXmlNew);
        }