Esempio n. 1
0
        public void AppPackageFolder_Transit()
        {
            DeleteAll();

            using (var folder = new AppPackageFolder(this, tempFolder))
            {
                AppRef           appRef;
                AppPackageInfo[] infoArr;
                AppPackageInfo   info;
                string           path;
                int    size;
                byte[] md5;

                Assert.AreEqual(0, folder.GetPackages().Length);

                appRef = new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4");
                path   = folder.BeginTransit(appRef);
                CreatePackageAt(path, appRef);

                Assert.AreEqual(0, folder.GetPackages().Length);
                folder.Scan();
                infoArr = folder.GetPackages();
                Assert.AreEqual(0, folder.GetPackages().Length);

                folder.EndTransit(path, true);

                infoArr = folder.GetPackages();
                Assert.AreEqual(1, infoArr.Length);

                info = FindFile(infoArr, "myapps.test1-0001.0002.0003.0004.zip");
                Assert.IsNotNull(infoArr);
                Assert.AreEqual("myapps.test1-0001.0002.0003.0004.zip", info.FileName);
                Assert.AreEqual(tempFolder + "\\myapps.test1-0001.0002.0003.0004.zip", info.FullPath);
                Assert.AreEqual(new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4"), info.AppRef);
                GetFileInfo(info.FileName, out size, out md5);
                Assert.AreEqual(size, info.Size);
                CollectionAssert.AreEqual(md5, info.MD5);

                // Try to overwrite an existing package

                appRef = new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4");
                path   = folder.BeginTransit(appRef);
                CreatePackageAt(path, appRef);
                folder.EndTransit(path, true);

                // Try cancelling a commit

                appRef = new AppRef("appref://MyApps/Test2.zip?version=5.6.7.8");
                path   = folder.BeginTransit(appRef);
                CreatePackageAt(path, appRef);
                folder.EndTransit(path, false);

                Assert.IsFalse(File.Exists(path));

                Assert.IsNull(FindFile(folder.GetPackages(), "myapps.test2-0005.0006.0007.0008.zip"));
                folder.Scan();
                Assert.IsNull(FindFile(folder.GetPackages(), "myapps.test2-0005.0006.0007.0008.zip"));
            }
        }
Esempio n. 2
0
        public void AppPackageFolder_Detect_Add()
        {
            DeleteAll();

            using (var folder = new AppPackageFolder(this, tempFolder))
            {
                AppPackageInfo[] infoArr;
                AppPackageInfo   info;
                int    size;
                byte[] md5;

                folder.Scan();
                Assert.AreEqual(0, folder.GetPackages().Length);

                CreatePackage(new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4"));
                Thread.Sleep(changeDetectTime);

                infoArr = folder.GetPackages();
                Assert.AreEqual(1, infoArr.Length);

                info = FindFile(infoArr, "myapps.test1-0001.0002.0003.0004.zip");
                Assert.IsNotNull(info);
                Assert.AreEqual("myapps.test1-0001.0002.0003.0004.zip", info.FileName);
                Assert.AreEqual(tempFolder + "\\myapps.test1-0001.0002.0003.0004.zip", info.FullPath);
                Assert.AreEqual(new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4"), info.AppRef);
                GetFileInfo(info.FileName, out size, out md5);
                Assert.AreEqual(size, info.Size);
                CollectionAssert.AreEqual(md5, info.MD5);

                CreatePackage(new AppRef("appref://MyApps/Test2.zip?version=5.6.7.8"));
                Thread.Sleep(changeDetectTime);

                infoArr = folder.GetPackages();
                Assert.AreEqual(2, infoArr.Length);

                info = FindFile(infoArr, "myapps.test1-0001.0002.0003.0004.zip");
                Assert.IsNotNull(info);
                Assert.AreEqual("myapps.test1-0001.0002.0003.0004.zip", info.FileName);
                Assert.AreEqual(tempFolder + "\\myapps.test1-0001.0002.0003.0004.zip", info.FullPath);
                Assert.AreEqual(new AppRef("appref://MyApps/Test1.zip?version=1.2.3.4"), info.AppRef);
                GetFileInfo(info.FileName, out size, out md5);
                Assert.AreEqual(size, info.Size);
                CollectionAssert.AreEqual(md5, info.MD5);

                info = FindFile(infoArr, "myapps.test2-0005.0006.0007.0008.zip");
                Assert.IsNotNull(info);
                Assert.AreEqual("myapps.test2-0005.0006.0007.0008.zip", info.FileName);
                Assert.AreEqual(tempFolder + "\\myapps.test2-0005.0006.0007.0008.zip", info.FullPath);
                Assert.AreEqual(new AppRef("appref://MyApps/Test2.zip?version=5.6.7.8"), info.AppRef);
                GetFileInfo(info.FileName, out size, out md5);
                Assert.AreEqual(size, info.Size);
                CollectionAssert.AreEqual(md5, info.MD5);
            }
        }
Esempio n. 3
0
        public void AppPackageFolder_Scan_Empty()
        {
            DeleteAll();

            using (var folder = new AppPackageFolder(this, tempFolder))
            {
                Assert.AreEqual(0, folder.GetPackages().Length);
                folder.Scan();
                Assert.AreEqual(0, folder.GetPackages().Length);
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Scans the package folder for changes.
 /// </summary>
 public void Scan()
 {
     using (TimedLock.Lock(syncLock))
         packageFolder.Scan();
 }