Ejemplo n.º 1
0
        public void StartingTriggersHostStartedEventWithProperValues()
        {
            // Arrange
            var contextMock  = new Mock <IBusContext <IConnection> >();
            var receiverMock = new Mock <IMessageReceiver>();
            var logger       = new Mock <ILogger <MicroserviceHost> >();

            const string queue = "testQueue";

            string[] topics = { "Topic1", "Topic2" };

            contextMock.Setup(e => e.CreateMessageReceiver(queue, topics))
            .Returns(receiverMock.Object);

            var listeners = new[] { new MicroserviceListener {
                                        TopicExpressions = topics
                                    } };

            var host = new MicroserviceHost(contextMock.Object, listeners, new List <MicroserviceCommandListener>(), queue, logger.Object);

            IMicroserviceHost    resultHost = null;
            HostStartedEventArgs eventArgs  = null;

            host.HostStarted += (microserviceHost, args) =>
            {
                resultHost = microserviceHost;
                eventArgs  = args;
            };

            // Act
            host.Start();

            // Assert
            Assert.AreEqual(host, resultHost);
            Assert.IsNotNull(eventArgs);
        }
        void hostContext_HostStarted(object sender, HostStartedEventArgs args)
        {
            if (!_isActivated)
            {
                Transaction t = Transaction.NewCurrent();
                try
                {

                    string query = "";
                    #region Trade agreement
                    PriceConfiguration.Kind.FindOnPriceKey = Sql.GetPrepared(
                        string.Format(
                        "SELECT result FROM {0} result " +
                        "WHERE result.PriceKey=variable(String, PriceKey) ",
                        typeof(PriceConfiguration).FullName));

                    #endregion

                    #region Identifiers
                    Identifier.Kind.FullIdentifierMatchSql = Sql.GetPrepared(
                        string.Format(
                        "SELECT result FROM {0} result " +
                        "WHERE result.Identifies=variable({1}, Identifies) " +
                        "AND result.Name=variable(String, Identifier)",
                        Kind.GetInstance<Identifier.Kind>().FullInstanceClassName,
                        Kind.GetInstance<Something.Kind>().FullInstanceClassName));

                    Identifier.Kind.IdentifierSql = Sql.GetPrepared(
                        string.Format(
                        "SELECT result FROM {0} result " +
                        "WHERE result.Name=variable(String, Identifier)",
                        Kind.GetInstance<Identifier.Kind>().FullInstanceClassName));

                    Identifier.Kind.IdentifiesSql = Sql.GetPrepared(
                        string.Format(
                        "SELECT result FROM {0} result " +
                        "WHERE result.Identifies=variable({1}, Identifies)",
                        Kind.GetInstance<Identifier.Kind>().FullInstanceClassName,
                        Kind.GetInstance<Something.Kind>().FullInstanceClassName));

                    #endregion

            #region Tradable

                    Tradable.Kind._PreparedFindVendible = Sql.GetPrepared(
                        String.Format("SELECT t FROM {0} t "
                        + "WHERE t.WhatIs=variable(Concepts.Ring1.Something, whatIs) AND"
                        + "      t.ToWhat=variable(Concepts.Ring1.Something, supplier)",
                        Kind.GetInstance<Tradable.Kind>().FullInstanceClassName));
                    #endregion

                    #region ChargeOrDeduction
                    query = String.Format("SELECT cod FROM {0} cod WHERE cod.TradableNeedsToExist=VAR({1},vKind)",
                        typeof(ChargeOrDeduction).FullName,
                        typeof(Tradable).FullName);
                    ChargeOrDeduction.SqlPreparedTradableNeedsToExist = Sql.GetPrepared(query);

                    query = String.Format("SELECT cod FROM {0} cod WHERE cod.TradeAgreement=VAR({1},ta)",
                        typeof(ChargeOrDeduction).FullName,
                        typeof(TradeAgreement).FullName);
                    TradeAgreement.SqlPreparedOffers = Sql.GetPrepared(query);

                    query = String.Format("SELECT co FROM {0} co",typeof(ComplexOffer).FullName);
                    ChargeOrDeduction.SqlPreparedAllComplexOffers = Sql.GetPrepared(query);
                    #endregion
                    _isActivated = true;
                }
                catch (System.Exception e)
                {
                    throw new ApplicationException("Failed to assure SQL-statements!", e);
                }
                finally
                {
                    t.Dispose();
                }
            }
        }
 void hostContext_HostStarted(object sender, HostStartedEventArgs args)
 {
     Activate();
 }