public void GivenEmptyDirectory_ThenCacheReadFails()
 {
     using (var path = new TempDirectory())
     {
         var directory = new FileSystemDirectory(path);
         var cache     = new BundleCollectionCache(directory, b => deserializers[b]);
         var result    = cache.Read();
         result.IsSuccess.ShouldBeFalse();
     }
 }
        public void GivenDirectoryWithManifest_ThenCacheReadSucceeds()
        {
            using (var path = new TempDirectory())
            {
                File.WriteAllText(
                    Path.Combine(path, "manifest.xml"),
                    "<?xml version=\"1.0\"?><BundleCollection Version=\"1\" IsStatic=\"false\"></BundleCollection>"
                );

                var directory = new FileSystemDirectory(path);
                var cache = new BundleCollectionCache(directory, b => deserializers[b]);
                var result = cache.Read();
                result.IsSuccess.ShouldBeTrue();
            }
        }
        public void GivenDirectoryWithManifest_ThenCacheReadSucceeds()
        {
            using (var path = new TempDirectory())
            {
                File.WriteAllText(
                    Path.Combine(path, "manifest.xml"),
                    "<?xml version=\"1.0\"?><BundleCollection Version=\"1\" IsStatic=\"false\"></BundleCollection>"
                    );

                var directory = new FileSystemDirectory(path);
                var cache     = new BundleCollectionCache(directory, b => deserializers[b]);
                var result    = cache.Read();
                result.IsSuccess.ShouldBeTrue();
            }
        }
        public void CreationDateTimeEqualsManifestFileLastWriteTimeUtc()
        {
            using (var path = new TempDirectory())
            {
                var manifestFilename = Path.Combine(path, "manifest.xml");
                File.WriteAllText(
                    manifestFilename,
                    "<?xml version=\"1.0\"?><BundleCollection Version=\"1\" IsStatic=\"false\"></BundleCollection>"
                );

                var directory = new FileSystemDirectory(path);
                var cache = new BundleCollectionCache(directory, b => deserializers[b]);
                var result = cache.Read();
                result.Manifest.CreationDateTime.ShouldEqual(File.GetLastWriteTimeUtc(manifestFilename));
            }
        }
        public void CreationDateTimeEqualsManifestFileLastWriteTimeUtc()
        {
            using (var path = new TempDirectory())
            {
                var manifestFilename = Path.Combine(path, "manifest.xml");
                File.WriteAllText(
                    manifestFilename,
                    "<?xml version=\"1.0\"?><BundleCollection Version=\"1\" IsStatic=\"false\"></BundleCollection>"
                    );

                var directory = new FileSystemDirectory(path);
                var cache     = new BundleCollectionCache(directory, b => deserializers[b]);
                var result    = cache.Read();
                result.Manifest.CreationDateTime.ShouldEqual(File.GetLastWriteTimeUtc(manifestFilename));
            }
        }
        public void GivenManifestAndBundleContentInDirectory_ThenCacheReadContainsBundle()
        {
            using (var path = new TempDirectory())
            {
                Directory.CreateDirectory(Path.Combine(path, "script/test"));
                File.WriteAllText(
                    Path.Combine(path, "manifest.xml"),
                    "<?xml version=\"1.0\"?>" +
                    "<BundleCollection Version=\"1\" IsStatic=\"false\">" +
                    "<ScriptBundle Path=\"~/test\" Hash=\"010203\"/>" +
                    "</BundleCollection>"
                    );
                File.WriteAllText(Path.Combine(path, "script/test/010203.js"), "");

                var directory = new FileSystemDirectory(path);
                var cache     = new BundleCollectionCache(directory, b => deserializers[b]);
                cache.Read();

                scriptBundleDeserializer.VerifyAll();
            }
        }
        public void GivenManifestAndBundleContentInDirectory_ThenCacheReadContainsBundle()
        {
            using (var path = new TempDirectory())
            {
                Directory.CreateDirectory(Path.Combine(path, "script/test"));
                File.WriteAllText(
                    Path.Combine(path, "manifest.xml"),
                    "<?xml version=\"1.0\"?>" +
                    "<BundleCollection Version=\"1\" IsStatic=\"false\">" +
                    "<ScriptBundle Path=\"~/test\" Hash=\"010203\"/>" +
                    "</BundleCollection>"
                );
                File.WriteAllText(Path.Combine(path, "script/test/010203.js"), "");

                var directory = new FileSystemDirectory(path);
                var cache = new BundleCollectionCache(directory, b => deserializers[b]);
                cache.Read();

                scriptBundleDeserializer.VerifyAll();
            }
        }
 public void GivenEmptyDirectory_ThenCacheReadFails()
 {
     using (var path = new TempDirectory())
     {
         var directory = new FileSystemDirectory(path);
         var cache = new BundleCollectionCache(directory, b => deserializers[b]);
         var result = cache.Read();
         result.IsSuccess.ShouldBeFalse();
     }
 }