public void TestAddAlternative()
        {
            SODesign design = new SODesign("test_design");

            // design should not be null
            Assert.NotNull(design);

            // first design alternative should be the default one
            Assert.IsNotEmpty(design.Alternatives);
            Assert.AreEqual(1, design.Alternatives.Length);
            Assert.AreEqual(SODesign.DEFAULT_ALTERNATIVE_NAME, design.Alternatives[0].Name);

            // add an alternative
            SODesignAlternative alternative = new SODesignAlternative("alternative_0001");
            design.AddAlternative(alternative);

            // second design alternative should now exist
            Assert.AreEqual(2, design.Alternatives.Length);
            Assert.AreEqual("alternative_0001", design.Alternatives[1].Name);
        }
        public void TestCurrentAlternative()
        {
            SODesign design = new SODesign("test_design");

            // design should not be null
            Assert.NotNull(design);

            // current alternative should be the first alternative
            Assert.AreEqual(1, design.Alternatives.Length);
            Assert.NotNull(design.CurrentAlternative);
            Assert.AreEqual(SODesign.DEFAULT_ALTERNATIVE_NAME, design.CurrentAlternative.Name);

            SODesignAlternative alternative = new SODesignAlternative("alternative_0001");
            design.AddAlternative(alternative);

            // current alternative should be the second alternative
            Assert.AreEqual(2, design.Alternatives.Length);
            Assert.NotNull(design.CurrentAlternative);
            Assert.AreEqual("alternative_0001", design.CurrentAlternative.Name);
        }