Пример #1
0
        public void TestAddEntryRecursive_defaults()
        {
            SystemPath testDirectory = TestResources.GetResource("core/layer");
            SystemPath testFile      = TestResources.GetResource("core/fileA");

            ILayerConfiguration layerConfiguration =
                LayerConfiguration.CreateBuilder()
                .AddEntryRecursive(testDirectory, AbsoluteUnixPath.Get("/app/layer/"))
                .AddEntryRecursive(testFile, AbsoluteUnixPath.Get("/app/fileA"))
                .Build();

            ImmutableHashSet <LayerEntry> expectedLayerEntries =
                ImmutableHashSet.Create(
                    DefaultLayerEntry(testDirectory, AbsoluteUnixPath.Get("/app/layer/")),
                    DefaultLayerEntry(testDirectory.Resolve("a"), AbsoluteUnixPath.Get("/app/layer/a/")),
                    DefaultLayerEntry(
                        testDirectory.Resolve("a/b"), AbsoluteUnixPath.Get("/app/layer/a/b/")),
                    DefaultLayerEntry(
                        testDirectory.Resolve("a/b/bar"), AbsoluteUnixPath.Get("/app/layer/a/b/bar/")),
                    DefaultLayerEntry(testDirectory.Resolve("c/"), AbsoluteUnixPath.Get("/app/layer/c")),
                    DefaultLayerEntry(
                        testDirectory.Resolve("c/cat/"), AbsoluteUnixPath.Get("/app/layer/c/cat")),
                    DefaultLayerEntry(testDirectory.Resolve("foo"), AbsoluteUnixPath.Get("/app/layer/foo")),
                    DefaultLayerEntry(testFile, AbsoluteUnixPath.Get("/app/fileA")));

            CollectionAssert.AreEquivalent(
                expectedLayerEntries, ImmutableHashSet.CreateRange(layerConfiguration.LayerEntries));
        }
Пример #2
0
        public void SetUp()
        {
            fakeDependenciesLayerConfiguration =
                MakeLayerConfiguration(
                    "core/application/dependencies", EXTRACTION_PATH_ROOT.Resolve("libs"));
            fakeSnapshotDependenciesLayerConfiguration =
                MakeLayerConfiguration(
                    "core/application/snapshot-dependencies", EXTRACTION_PATH_ROOT.Resolve("libs"));
            fakeResourcesLayerConfiguration =
                MakeLayerConfiguration(
                    "core/application/resources", EXTRACTION_PATH_ROOT.Resolve("resources"));
            fakeClassesLayerConfiguration =
                MakeLayerConfiguration("core/application/classes", EXTRACTION_PATH_ROOT.Resolve("classes"));
            fakeExtraFilesLayerConfiguration =
                LayerConfiguration.CreateBuilder()
                .AddEntry(
                    Paths.Get(TestResources.GetResource("core/fileA").ToURI()),
                    EXTRA_FILES_LAYER_EXTRACTION_PATH.Resolve("fileA"))
                .AddEntry(
                    Paths.Get(TestResources.GetResource("core/fileB").ToURI()),
                    EXTRA_FILES_LAYER_EXTRACTION_PATH.Resolve("fileB"))
                .Build();
            emptyLayerConfiguration = LayerConfiguration.CreateBuilder().Build();

            cache = LayersCache.WithDirectory(temporaryFolder.NewFolder().ToPath());

            Mock.Get(mockBuildConfiguration).Setup(m => m.GetEventHandlers()).Returns(mockEventHandlers);

            Mock.Get(mockBuildConfiguration).Setup(m => m.GetApplicationLayersCache()).Returns(cache);
        }
 public TransformTemplate(ILayerConfiguration local)
 {
     version = local.Version.ToString();
     foreach (var layer in local.Layers)
     {
         layers.Add(layer.Name, (IEnumerable <Context>)layer.Contexts);
     }
 }
Пример #4
0
        public void TestAddEntryRecursive_permissionsAndTimestamps()
        {
            SystemPath testDirectory = TestResources.GetResource("core/layer");
            SystemPath testFile      = TestResources.GetResource("core/fileA");

            FilePermissions permissions1 = FilePermissions.FromOctalString("111");
            FilePermissions permissions2 = FilePermissions.FromOctalString("777");
            Instant         timestamp1   = Instant.FromUnixTimeSeconds(123);
            Instant         timestamp2   = Instant.FromUnixTimeSeconds(987);

            FilePermissions permissionsProvider(SystemPath _, AbsoluteUnixPath destination) =>
            destination.ToString().StartsWith("/app/layer/a", StringComparison.Ordinal) ? permissions1 : permissions2;
            Instant timestampProvider(SystemPath _, AbsoluteUnixPath destination) =>
            destination.ToString().StartsWith("/app/layer/a", StringComparison.Ordinal) ? timestamp1 : timestamp2;

            ILayerConfiguration layerConfiguration =
                LayerConfiguration.CreateBuilder()
                .AddEntryRecursive(
                    testDirectory,
                    AbsoluteUnixPath.Get("/app/layer/"),
                    permissionsProvider,
                    timestampProvider)
                .AddEntryRecursive(
                    testFile,
                    AbsoluteUnixPath.Get("/app/fileA"),
                    permissionsProvider,
                    timestampProvider)
                .Build();

            ImmutableHashSet <LayerEntry> expectedLayerEntries =
                ImmutableHashSet.Create(
                    new LayerEntry(
                        testDirectory, AbsoluteUnixPath.Get("/app/layer/"), permissions2, timestamp2),
                    new LayerEntry(
                        testDirectory.Resolve("a"),
                        AbsoluteUnixPath.Get("/app/layer/a/"),
                        permissions1,
                        timestamp1),
                    new LayerEntry(
                        testDirectory.Resolve("a/b"),
                        AbsoluteUnixPath.Get("/app/layer/a/b/"),
                        permissions1,
                        timestamp1),
                    new LayerEntry(
                        testDirectory.Resolve("a/b/bar"),
                        AbsoluteUnixPath.Get("/app/layer/a/b/bar/"),
                        permissions1,
                        timestamp1),
                    new LayerEntry(
                        testDirectory.Resolve("c/"),
                        AbsoluteUnixPath.Get("/app/layer/c"),
                        permissions2,
                        timestamp2),
                    new LayerEntry(
                        testDirectory.Resolve("c/cat/"),
                        AbsoluteUnixPath.Get("/app/layer/c/cat"),
                        permissions2,
                        timestamp2),
                    new LayerEntry(
                        testDirectory.Resolve("foo"),
                        AbsoluteUnixPath.Get("/app/layer/foo"),
                        permissions2,
                        timestamp2),
                    new LayerEntry(testFile, AbsoluteUnixPath.Get("/app/fileA"), permissions2, timestamp2));

            CollectionAssert.AreEquivalent(
                expectedLayerEntries, ImmutableHashSet.CreateRange(layerConfiguration.LayerEntries));
        }
Пример #5
0
 /**
  * Adds a layer (defined by a {@link LayerConfiguration}).
  *
  * @param layerConfiguration the {@link LayerConfiguration}
  * @return this
  */
 public FibContainerBuilder AddLayer(ILayerConfiguration layerConfiguration)
 {
     layerConfigurations.Add(layerConfiguration);
     return(this);
 }