public void ElementList_AddAllElement_NoError()
        {
            var factories = new IElementFactoryViewModel<IElementViewModel>[]
            {
                new PortiereFactoryViewModel(),
                new PleatFactoryViewModel(),
                new TulleFactoryViewModel(),
                new TieBackFactoryViewModel(), 
                new PanelFactoryViewModel(), 
                new HardPelmetFactoryViewModel(), 
                new ApplicationFactoryViewModel(), 
                new ScanFactoryViewModel(), 
                new OverlayFactoryViewModel(), 
                new FilletFactoryViewModel(), 
                new EqualSwagFactoryViewModel(), 
                new EqualTailFactoryViewModel(), 
                new ScaleneSwagFactoryViewModel(), 
                new ScaleneTailFactoryViewModel(),
                new DeJabotFactoryViewModel(), 
                new LatticeFactoryViewModel(), 
                new RomanBlindFactoryViewModel()
            };
            var screen = new ScreenViewModel()
            {
                Width = 4,
                Height = 2
            };

            var settingData = MockRepository.GenerateStub<ISettingData>();
            settingData.Stub(sd => sd.ProgramName).Return("MyName");
            settingData.Stub(sd => sd.Version).Return("1.0.0.0");

            var settingProvider = MockRepository.GenerateStub<ISettingProvider>();
            settingProvider.Stub(sp => settingProvider.GetSettingData()).Return(settingData);

            var workspace = new WorkspaceViewModel()
            {
                Factories = factories,
                Screen = screen,
                CommandFactory = MockRepository.GenerateStub<ICommandFactory>(),
                SettingProvider = settingProvider
            };

            var elementList = workspace.ElementList;
            factories.ToList()
                .ForEach(factory => elementList.AppendElement(factory));

            Assert.That(elementList.Count(), Is.EqualTo(factories.Length));

            var dataTransfer = workspace.Save();

            Assert.DoesNotThrow(() =>
            {
                var serializer = new XmlSerializer(StandardXmlPrimitive.Primitives, dataTransfer);
                serializer.Serialize();
            });
            workspace.Restore(dataTransfer);
            Assert.That(elementList.Count(), Is.EqualTo(factories.Length));
        }