예제 #1
0
        internal virtual ILogBus CreateILogBus()
        {
            // TODO: creare l'istanza di una classe concreta appropriata.
            LogbusService target = new LogbusService();

            LogbusServerConfiguration config = new LogbusServerConfiguration()
            {
                corefilter = new FacilityEqualsFilter()
                {
                    facility = SyslogFacility.Security
                },
                inchannels = new InboundChannelDefinition[]
                {
                    new InboundChannelDefinition()
                    {
                        type = "It.Unina.Dis.Logbus.InChannels.SyslogUdpReceiver, It.Unina.Dis.Logbus"
                    }
                }
            };

            target.Configuration = config;
            target.Configure();

            return(target);
        }
예제 #2
0
        public void StartTest()
        {
            WindowsIdentity  identity  = WindowsIdentity.GetCurrent();
            WindowsPrincipal principal = new WindowsPrincipal(identity);

            if (!principal.IsInRole(WindowsBuiltInRole.Administrator))
            {
                Assert.Fail("You must be running this test as an Administrator");
            }

            LogbusServerConfiguration config = new LogbusServerConfiguration();

            using (ILogBus service = new LogbusService(config))
            {
                service.Start();
                int httpPort = 8065; // TODO: Eseguire l'inizializzazione a un valore appropriato
                using (WebServiceActivator webService = new WebServiceActivator(service, httpPort))
                {
                    webService.Start();
                    Thread.Sleep(10000);
                    webService.Stop();
                }
                service.Stop();
            }
        }
예제 #3
0
        public void Test2()
        {
            try
            {
                t2_step1  = new AutoResetEvent(false);
                t2_step2  = new AutoResetEvent(false);
                t2_finish = new AutoResetEvent(false);

                Thread source, client;
                source = new Thread(t2_thread_Source);
                client = new Thread(t2_thread_Client);
                using (ILogBus logbus_service = new LogbusService(core_configuration[1]))
                {
                    logbus_service.Start();
                    client.Start(logbus_service);

                    //Wait for client to be synchronized
                    t2_step1.WaitOne();

                    //Prepare source
                    source.Start();
                    //Wait for source to send all the messages
                    t2_step2.WaitOne();

                    //Wait for finish
                    t2_finish.WaitOne();
                    //TestContext.
                }
            }
            catch (Exception ex) { Assert.Fail("Test failed: {0}", ex); }
        }
        public void TestDeployAsmx()
        {
            try
            {
                LogbusServerConfiguration config = new LogbusServerConfiguration();
                config.webserver = new WebServerConfiguration {
                    active = true
                };
                PluginDefinition plugDef = new PluginDefinition()
                {
                    type = typeof(DummyPlugin).AssemblyQualifiedName
                };
                config.plugins = new PluginDefinition[] { plugDef };
                using (LogbusService logbus = new LogbusService())
                {
                    logbus.Configure(config);
                    logbus.Start();

                    //Test HTTP request
                    DummyStub stub = new DummyStub()
                    {
                        Url = "http://localhost:8065/Dummy.asmx"
                    };

                    Assert.AreEqual <int>(5, stub.Sum(3, 2));
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("Test failed: {0}", ex.ToString());
            }
        }
예제 #5
0
        public void SubmitMessageTest()
        {
            LogbusService target = new LogbusService(); // TODO: Eseguire l'inizializzazione a un valore appropriato
            SyslogMessage msg    = new SyslogMessage(); // TODO: Eseguire l'inizializzazione a un valore appropriato

            target.SubmitMessage(msg);
            Assert.Inconclusive("Impossibile verificare un metodo che non restituisce valori.");
        }
예제 #6
0
 public void ConfigurationTest()
 {
     //App.config configuration
     using (LogbusService target = new LogbusService())
     {
         target.Configure();
     }
 }
예제 #7
0
        public void GetAvailableTransportsTest()
        {
            LogbusService target = new LogbusService();

            target.Configure(new LogbusServerConfiguration());
            string[] expected = new string[] { "udp" };
            string[] actual;
            actual = target.GetAvailableTransports();
            Assert.AreEqual(1, actual.Length);
            Assert.AreEqual(expected[0], actual[0]);
        }
예제 #8
0
        public void ConfigureTest()
        {
            LogbusServerConfiguration config = new LogbusServerConfiguration();

            config.corefilter = new FacilityEqualsFilter()
            {
                facility = SyslogFacility.Kernel
            };
            config.inchannels = new InboundChannelDefinition[]
            {
                new InboundChannelDefinition()
                {
                    type = "It.Unina.Dis.Logbus.InChannels.SyslogUdpReceiver, It.Unina.Dis.Logbus"
                }
            };
            //Manual configuration
            using (ILogBus target = new LogbusService(config))
            {
                Assert.AreEqual(1, target.InboundChannels.Count);
                Assert.IsInstanceOfType(target.MainFilter, typeof(FacilityEqualsFilter));
            }
        }
예제 #9
0
        public void LogbusTest()
        {
            step1  = new AutoResetEvent(false);
            step2  = new AutoResetEvent(false);
            finish = new AutoResetEvent(false);

            try
            {
                LogbusServerConfiguration config = new LogbusServerConfiguration();
                config.inchannels             = new InboundChannelDefinition[1];
                config.inchannels[0]          = new InboundChannelDefinition();
                config.inchannels[0].type     = "It.Unina.Dis.Logbus.InChannels.SyslogUdpReceiver, It.Unina.Dis.Logbus";
                config.inchannels[0].param    = new KeyValuePair[1];
                config.inchannels[0].param[0] =
                    new KeyValuePair()
                {
                    name  = "port",
                    value = SOURCE_PORT.ToString()
                };

                using (ILogBus service = new LogbusService(config))
                {
                    service.Start();

                    new Thread(thread_Client).Start(service);
                    step1.WaitOne();

                    new Thread(thread_Source).Start();
                    step2.WaitOne();

                    finish.WaitOne();
                }
            }
            catch (Exception ex)
            {
                Assert.Fail("Test failed: {0}", ex);
            }
        }
예제 #10
0
        public void FFDATest()
        {
            FilterBase ffda_filter =
                new FacilityEqualsFilter()
            {
                facility = SyslogFacility.Local0
            } &
            new PropertyFilter()
            {
                comparison = ComparisonOperator.eq, propertyName = Property.MessageID, value = "FFDA"
            };

            StringBuilder markup = new StringBuilder();

            new XmlSerializer(typeof(FilterBase)).Serialize(XmlTextWriter.Create(markup, new XmlWriterSettings()
            {
                Indent = true
            }), ffda_filter, ffda_filter.xmlns);

            TestContext.WriteLine("{0}", markup.ToString());

            const int SEND_PORT = 5427;

            //Init Logbus
            LogbusServerConfiguration core_config = new LogbusServerConfiguration();

            core_config.corefilter = ffda_filter;
            InboundChannelDefinition in_ch = new InboundChannelDefinition();

            in_ch.type  = "SyslogUdpReceiver";
            in_ch.param = new KeyValuePair[]
            {
                new KeyValuePair()
                {
                    name  = "port",
                    value = SEND_PORT.ToString()
                }
            };
            core_config.inchannels = new InboundChannelDefinition[] { in_ch };

            using (ILogBus logbus = new LogbusService(core_config))
            {
                logbus.MessageReceived += new EventHandler <SyslogMessageEventArgs>(logbus_MessageReceived);
                logbus.Start();

                //Init FFDA
                LogbusLoggerConfiguration source_config = new LogbusLoggerConfiguration();
                LoggerDefinition          udp_def       = new LoggerDefinition()
                {
                    type  = "SyslogUdpCollector",
                    param = new KeyValuePair[] { new KeyValuePair()
                                                 {
                                                     name = "port", value = SEND_PORT.ToString()
                                                 }, new KeyValuePair()
                                                 {
                                                     name = "ip", value = "127.0.0.1"
                                                 } }
                };
                source_config.logger       = new LoggerDefinition[] { udp_def };
                LoggerHelper.Configuration = source_config;

                //Send what we want: 2 FFDA messages
                IFieldFailureDataLogger logger = FieldFailureDataHelper.CreateFailureDataLogger("ffda");
                logger.LogSST();
                logger.LogSEN();

                //Send junk
                ILog junk_log = LoggerHelper.GetLogger();
                junk_log.Debug("Hello");
                junk_log.Error("Junk error");

                Thread.Sleep(1000);
                logbus.Stop();
            }

            Assert.AreEqual(2, messages);
        }