public void TestAddLayer_success()
        {
            IList <ILayer> expectedLayers = new[] { mockLayer, mockReferenceLayer, mockDigestOnlyLayer };

            ImageLayers imageLayers =
                ImageLayers.CreateBuilder()
                .Add(mockLayer)
                .Add(mockReferenceLayer)
                .Add(mockDigestOnlyLayer)
                .Build();

            Assert.AreEqual(imageLayers.GetLayers(), expectedLayers);
        }
        public void TestAddLayer_maintainDuplicates()
        {
            // must maintain duplicate
            IList <ILayer> expectedLayers =
                new[] { mockLayer, mockReferenceLayer, mockDigestOnlyLayer, mockLayer2, mockLayer };

            ImageLayers imageLayers =
                ImageLayers.CreateBuilder()
                .Add(mockLayer)
                .Add(mockReferenceLayer)
                .Add(mockDigestOnlyLayer)
                .Add(mockLayer2)
                .Add(mockLayer)
                .Build();

            Assert.AreEqual(expectedLayers, imageLayers.GetLayers());
        }
        public void TestAddLayer_removeDuplicates()
        {
            // remove duplicates: last layer should be kept
            IList <ILayer> expectedLayers =
                new[] { mockReferenceLayer, mockDigestOnlyLayer, mockLayer2, mockLayer };

            ImageLayers imageLayers =
                ImageLayers.CreateBuilder()
                .RemoveDuplicates()
                .Add(mockLayer)
                .Add(mockReferenceLayer)
                .Add(mockDigestOnlyLayer)
                .Add(mockLayer2)
                .Add(mockLayer)
                .Build();

            Assert.AreEqual(expectedLayers, imageLayers.GetLayers());
        }