Ejemplo n.º 1
0
        public void MyTestInitialize()
        {
            Debug.WriteLine("Initialize", this.GetType().Name);
            ConsumerContext.id = Guid.NewGuid();
            using (var container = new Turbine.Data.TurbineModelContainer())
            {
                container.Jobs.ToList().ForEach(m => container.DeleteObject(m));
                container.SinterProcesses.ToList().ForEach(s => container.DeleteObject(s));
                container.Simulations.ToList().ForEach(n => container.DeleteObject(n));
                container.Applications.ToList().ForEach(i => container.DeleteObject(i));
                container.InputFileTypes.ToList().ForEach(j => container.DeleteObject(j));
                container.StagedInputFiles.ToList().ForEach(k => container.DeleteObject(k));
                container.SimulationStagedInputs.ToList().ForEach(l => container.DeleteObject(l));
                container.Sessions.ToList().ForEach(m => container.DeleteObject(m));
                container.SaveChanges();
            }

            var contract = new Turbine.Producer.Data.Contract.AspenSessionProducerContract();

            for (int i = 0; i <= 1000; i++)
            {
                System.Threading.Thread.Sleep(1);
                contract.Create();
            }
        }
        public void MyTestInitialize()
        {
            Debug.WriteLine("Initialize", this.GetType().Name);
            ConsumerContext.id = Guid.NewGuid();
            using (var container = new Turbine.Data.TurbineModelContainer())
            {
                container.Messages.ToList().ForEach(a => container.DeleteObject(a));
                container.Jobs.ToList().ForEach(m => container.DeleteObject(m));
                container.SinterProcesses.ToList().ForEach(s => container.DeleteObject(s));
                container.Simulations.ToList().ForEach(n => container.DeleteObject(n));
                container.Applications.ToList().ForEach(i => container.DeleteObject(i));
                container.InputFileTypes.ToList().ForEach(j => container.DeleteObject(j));
                container.StagedInputFiles.ToList().ForEach(k => container.DeleteObject(k));
                container.SimulationStagedInputs.ToList().ForEach(l => container.DeleteObject(l));

                container.SaveChanges();
            }
            // Must Sleep so Timestamps are different
            var app = ApplicationProducerContract.Create("AspenPlus", "0.1"); System.Threading.Thread.Sleep(10);

            app.UpdateInputFileType("aspenfile", true, "plain/text"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("configuration", true, "plain/text"); System.Threading.Thread.Sleep(10);

            app = ApplicationProducerContract.Create("ACM", "0.1"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("aclm", true, "plain/text"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("configuration", true, "plain/text"); System.Threading.Thread.Sleep(10);

            app = ApplicationProducerContract.Create("gProms", "0.1"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("gproms", true, "plain/text"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("configuration", true, "plain/text"); System.Threading.Thread.Sleep(10);

            app = ApplicationProducerContract.Create("excel", "0.1"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("excel", true, "plain/text"); System.Threading.Thread.Sleep(10);
            app.UpdateInputFileType("configuration", true, "plain/text");
        }
        public void TestSimulationProducerConsumerContracts()
        {
            var simulation_name = "TestSimulationProducerConsumerContracts";
            var input_name      = "configuration";
            ISimulationProducerContract contract = AspenSimulationContract.Create(simulation_name, "ACM");

            using (var container = new Turbine.Data.TurbineModelContainer())
            {
                var obj   = container.Simulations.Single <Turbine.Data.Simulation>(s => s.Name == simulation_name);
                var input = obj.SimulationStagedInputs.Single <Turbine.Data.SimulationStagedInput>(i => i.Name == input_name);
                Assert.IsNull(input.Hash);
                Assert.IsNull(input.Content);
                Debug.WriteLine("SimulationStagedInput: " + input.Name, this.GetType().Name);

                input_name = "aclm";
                input      = obj.SimulationStagedInputs.Single <Turbine.Data.SimulationStagedInput>(i => i.Name == input_name);
                Assert.IsNull(input.Hash);
                Assert.IsNull(input.Content);
                Debug.WriteLine("SimulationStagedInput: " + input.Name, this.GetType().Name);
            }

            input_name = "configuration";
            contract   = AspenSimulationContract.Get(simulation_name);
            byte[] data     = Encoding.UTF8.GetBytes("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
            var    provider = System.Security.Cryptography.MD5CryptoServiceProvider.Create();

            byte[] hash = provider.ComputeHash(data);
            var    sb   = new StringBuilder();

            foreach (byte b in hash)
            {
                sb.Append(b.ToString("X2"));
            }
            string hval = sb.ToString();

            var  content_type = "plain/text";
            bool success      = contract.UpdateInput(input_name, data, content_type);

            using (var container = new Turbine.Data.TurbineModelContainer())
            {
                var obj   = container.Simulations.OrderByDescending(q => q.Create).First <Turbine.Data.Simulation>(s => s.Name == simulation_name);
                var input = obj.SimulationStagedInputs.Single <Turbine.Data.SimulationStagedInput>(i => i.Name == input_name);
                Debug.WriteLine(String.Format("SimulationStagedInput: {0}, {1}, {2}", input.Name, input.Hash, Encoding.UTF8.GetString(input.Content)),
                                this.GetType().Name);
                Assert.AreEqual(input.Hash, hval);
                Assert.AreEqual(Encoding.UTF8.GetString(input.Content), "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
            }
        }
        public void TestExcelSpreadsheet1()
        {
            var app = ApplicationProducerContract.Get("Excel");

            Assert.IsNotNull(app);

            ISimulationProducerContract simulation_contract = AspenSimulationContract.Create("test", "Excel");

            Assert.IsNotNull(simulation_contract);

            byte[] data;
            using (var fstream = File.Open(@"exceltest.xlsm", FileMode.Open))
            {
                using (var ms = new MemoryStream())
                {
                    fstream.CopyTo(ms);
                    data = ms.ToArray();
                }
            }
            Assert.IsTrue(data.Length > 0);
            System.Threading.Thread.Sleep(10);
            simulation_contract.UpdateInput("spreadsheet", data, "plain/text");
            data = null;
            using (var fstream = File.Open("exceltest-sinter.json", FileMode.Open))
            {
                using (var ms = new MemoryStream())
                {
                    fstream.CopyTo(ms);
                    data = ms.ToArray();
                }
            }
            Assert.IsTrue(data.Length > 0);
            System.Threading.Thread.Sleep(10);
            simulation_contract.UpdateInput("configuration", data, "plain/text");
            System.Threading.Thread.Sleep(10);

            var guid = Guid.NewGuid();
            var job_producer_contract = simulation_contract.NewJob(guid, false, false);

            job_producer_contract.Process.Input = new Dictionary <string, Object>()
            {
            };
            job_producer_contract.Submit();
            System.Threading.Thread.Sleep(10);

            IConsumerRegistrationContract contract = Turbine.Consumer.AppUtility.GetConsumerRegistrationContract();

            Assert.IsNull(contract.Queue);
            contract.Register();

            Turbine.Consumer.Contract.SinterConsumer consumer = new Turbine.Consumer.Excel.ExcelSinterConsumer();

            //Utility.CheckBaseDirectory();

            consumer.Run();

            int jobID = job_producer_contract.Id;

            Debug.WriteLine("Job GUID" + guid.ToString(), GetType().Name);
            Dictionary <string, Object> json = null;

            using (Turbine.Data.TurbineModelContainer container = new Turbine.Data.TurbineModelContainer())
            {
                Turbine.Data.Job entity = container.Jobs.Single(s => s.Id == job_producer_contract.Id);
                json = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, Object> >(entity.Process.Output);
            }

            string output = Newtonsoft.Json.JsonConvert.SerializeObject(json);

            Debug.WriteLine("OUTPUT: " + output, GetType().Name);
        }