public void SaveHandlerSaveCollisionTest()
        {
            Catrobat.IDE.Core.App.InitializeSaveHandler();
            Catrobat.IDE.Core.Models.Program testprog = new Catrobat.IDE.Core.Models.Program();
            Catrobat.IDE.Core.Models.Program testprog_ref = new Catrobat.IDE.Core.Models.Program();

            for (int i = 0; i < 10; i++)
            {
                Catrobat.IDE.Core.Models.Sprite testsprite = new Catrobat.IDE.Core.Models.Sprite();
                testprog.Sprites.Add(testsprite);
                testprog_ref.Sprites.Add(testsprite);
            }

            // not properly working when both is used but working individually

            // let save thread save (async)
            Catrobat.Core.Services.Common.SaveHandler.addSaveJob(testprog);
            // let actual thread save
            testprog.Save();

            // problem => both are probably saving at the same time, disturbing each other


            for (int i = 0; i < 10; i++)
            {
                Assert.IsNotNull(testprog.Sprites[i]);
                Assert.IsNotNull(testprog_ref.Sprites[i]);
                Assert.AreEqual(testprog.Sprites[i], testprog_ref.Sprites[i]);
            }
        }
        public void SaveHandlerQueueTest()
        {
            Catrobat.IDE.Core.Models.Program testprog = new Catrobat.IDE.Core.Models.Program();
            Catrobat.Core.Services.Common.SaveHandler.addSaveJob(testprog);
            Catrobat.Core.Services.Common.SaveHandler.addSaveJob(testprog);
            Queue<Catrobat.Core.Services.Common.SaveHandler.SaveJob> testqueue = Catrobat.Core.Services.Common.SaveHandler.GetQueue();

            Assert.IsTrue(testqueue.Count == 1);
        }