예제 #1
0
        public void Execute_DataPoint_sp_test01()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "sp_test01",
                    Driver = "pg",
                    Config = "Host=localhost;Database=otm;Username=otm;Password=otm",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        },
                        new DataPointParamConfig {
                            Name = "p2",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.ToOTM
                        }
                    }).ToList()
                }
            };

            var inParams = new Dictionary <string, object>();

            inParams["p1"] = 2;
            inParams["p2"] = 0;

            var loggerMock = new Mock <ILogger>();
            var dpSpTest01 = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object)["sp_test01"];

            var outParams = dpSpTest01.Execute(inParams);

            Assert.Equal(4, outParams["p2"]);
        }
예제 #2
0
        public void Execute_DataPoint_sp_test01()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "[dbo].[sp_test01]",
                    Driver = "mssql",
                    Config = "Server=localhost;Database=QuickFlowDb;User Id=sa;Password=Aguia3220;",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        },
                        new DataPointParamConfig {
                            Name = "@p2",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.ToOTM
                        }
                    }).ToList()
                }
            };

            var inParams = new Dictionary <string, object>();

            inParams["@p1"] = 2;
            inParams["@p2"] = 0;

            var loggerMock = new Mock <ILogger>();
            var dpSpTest01 = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object)["[dbo].[sp_test01]"];

            var outParams = dpSpTest01.Execute(inParams);

            Assert.Equal(4, outParams["@p2"]);
        }
예제 #3
0
파일: OtmContext.cs 프로젝트: hemerfc/otm
 public void Initialize()
 {
     Logger.LogInformation($"OTM {Config.Name} Context Initializing ...");
     try
     {
         DataPoints   = DataPointFactory.CreateDataPoints(Config.DataPoints, Logger);
         Devices      = DeviceFactory.CreateDevices(Config.Devices, Logger);
         Transactions = TransactionFactory.CreateTransactions(Config.Transactions, DataPoints, Devices, Logger);
         Logger.LogInformation($"OTM {Config.Name} Context Initialized!");
     }
     catch (Exception ex)
     {
         Logger.LogError(ex, $"OTM {Config.Name} Context Initialization error!");
     }
 }
예제 #4
0
        public void InvalidNullParameterList()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "pg",
                    Config = "",
                    Params = null
                }
            };

            var loggerMock = new Mock <ILogger>();
            var ex         = Record.Exception(() => DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object));

            Assert.Equal("Params", ex?.Data["field"]);
        }
예제 #5
0
        protected virtual void ProcessTransactions <T>(IEnumerable <Transaction> transactions, IList <T> dataPoints) where T : DataPoint
        {
            decimal total = 0;

            foreach (var transaction in transactions)
            {
                if (!ShouldInclude(transaction))
                {
                    continue;
                }

                total += transaction.Amount;
                var dataPoint = DataPointFactory.GetDataPoint(typeof(T), transaction, total) as T;

                dataPoints.Add(dataPoint);
            }
        }
예제 #6
0
        public void CreateOdbcDataPoint()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "pg",
                    Config = "dsn=DB01",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                },
                new DataPointConfig {
                    Name   = "dp02",
                    Driver = "pg",
                    Config = "dsn=DB02",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.Int32,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                }
            };

            var loggerMock = new Mock <ILogger>();
            var datapoints = DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object);

            Assert.Equal(2, datapoints.Count);

            Assert.IsType <PgDataPoint>(datapoints["dp01"]);

            Assert.IsType <PgDataPoint>(datapoints["dp02"]);
        }
예제 #7
0
        public void InvalidStringParamWithoutLenght()
        {
            // prepare
            var dpConfig = new DataPointConfig[] {
                new DataPointConfig {
                    Name   = "dp01",
                    Driver = "mssql",
                    Config = "",
                    Params = (new DataPointParamConfig[] {
                        new DataPointParamConfig {
                            Name = "@p1",
                            TypeCode = TypeCode.String,
                            Mode = Modes.FromOTM
                        }
                    }).ToList()
                }
            };

            var loggerMock = new Mock <ILogger>();
            var ex         = Record.Exception(() => DataPointFactory.CreateDataPoints(dpConfig, loggerMock.Object));

            Assert.Equal("Length", ex?.Data["field"]);
        }