public void TestMethodMultiHibernation() { var proces = new HibernateWorkflowSimple() { InputParametr = 10 }; var vm = new VirtualMachine.VirtualMachine(); vm.Start(proces); var serializedVMXml = vm.Serialize(); object retFromSerializedVM = ""; while (vm.Status == VirtualMachineState.Hibernated) { vm = VirtualMachine.VirtualMachine.Deserialize(serializedVMXml); retFromSerializedVM = vm.Resume(); serializedVMXml = vm.Serialize(); } var inProcProces = new HibernateWorkflowSimple() { InputParametr = 10 }; var retInProcProces = inProcProces.Start(); Assert.AreEqual(retInProcProces, retFromSerializedVM); }
public void TestMethod1() { var proces = new ProstaHibernacjaProces(); var vm = new VirtualMachine.VirtualMachine(); vm.Start(proces); //zwraca null, bo proces się zahibernował Assert.IsTrue(vm.Status == VirtualMachineState.Hibernated); vm.Resume(); //wznawiam wykonanie procesu -> po czym proces powinien znów się zahibernować Assert.IsTrue(vm.Status == VirtualMachineState.Hibernated); vm.Resume(); //wznawiam wykonanie procesu -> po czym proces powinien się zakończyć i zwrócić wynik wewnętrzny Assert.IsTrue(vm.Status == VirtualMachineState.Executed); var vmWynik = vm.Wynik; var wynik = proces.Start(); Assert.AreEqual(wynik, vmWynik); }
public void TestMethod2() { var proces = new HibernacjaProces(); var wynik = proces.Start(); //wynik procesu wykonanego 'natywnie' proces = new HibernacjaProces(); var vm = new VirtualMachine.VirtualMachine(); vm.Start(proces); //zwraca null, bo proces się zahibernował //wznawiam tyle razy ile potrzeba, tak żeby zakończyć proces while (vm.Status == VirtualMachineState.Hibernated) { vm.Resume(); } var vmWynik = vm.Wynik; //wynik procesu interpretowanego w VM Assert.AreEqual(wynik, vmWynik); }