Exemple #1
0
        public void TestExtensionCloning()
        {
            var puppetLevel1   = PuppetLevel.Create(masterBuildControl: true);
            var puppetSpecial1 = new PuppetLevelAddition1(puppetLevel1, true); //give value for Addition1
            var puppetSpecial2 = puppetLevel1.GetSpecialised <PuppetLevelAddition2>();


            var puppetLevel1C = puppetLevel1.Clone();
            PuppetLevelAddition1 puppetSpecial1C = puppetLevel1C.GetSpecialised <PuppetLevelAddition1>();
            PuppetLevelAddition2 puppetSpecial2C = puppetLevel1C.GetSpecialised <PuppetLevelAddition2>();

            //Value Conservation
            Assert.True(puppetLevel1C.MasterBuildControl);
            Assert.True(puppetSpecial1C.MasterBuildControl);
            Assert.True(puppetSpecial2C.MasterBuildControl);
            //Instance independence
            Assert.NotEqual(puppetLevel1, puppetLevel1C);
            Assert.NotEqual(puppetSpecial1, puppetSpecial1C);
            Assert.NotEqual(puppetSpecial2, puppetSpecial2C);
            //Value independence
            puppetLevel1.MasterBuildControl = false;
            puppetSpecial1.Addition1        = false;
            puppetSpecial2C.Addition2       = true;
            Assert.NotEqual(puppetLevel1.MasterBuildControl, puppetLevel1C.MasterBuildControl);
            Assert.NotEqual(puppetSpecial1.MasterBuildControl, puppetSpecial1C.MasterBuildControl);
            Assert.NotEqual(puppetSpecial2.MasterBuildControl, puppetSpecial2C.MasterBuildControl);
            Assert.NotEqual(puppetSpecial1.Addition1, puppetSpecial1C.Addition1);
            Assert.NotEqual(puppetSpecial2.Addition2, puppetSpecial2C.Addition2);
        }
Exemple #2
0
        public void TestExtensionInstanceConsistency()
        {
            var puppetLevel1    = PuppetLevel.Create();
            var puppetSpecial1  = puppetLevel1.GetSpecialised <PuppetLevelAddition1>();
            var puppetSpecial2  = new PuppetLevelAddition2(puppetLevel1);
            var puppetSpecial3  = new PuppetLevelAddition3(puppetSpecial2);
            var puppetSpecial11 = puppetSpecial3.GetSpecialised <PuppetLevelAddition1>();
            var puppetSpecial21 = puppetLevel1.GetSpecialised <PuppetLevelAddition2>();
            var puppetSpecial31 = puppetSpecial1.GetSpecialised <PuppetLevelAddition3>();

            Assert.True(puppetSpecial1 == puppetSpecial11);
            Assert.True(puppetSpecial2 == puppetSpecial21);
            Assert.True(puppetSpecial3 == puppetSpecial31);
        }