Example #1
0
        public void Get_ShouldReturnValidInstance_ForSupportedTypes()
        {
            // Arrange.
            var configuration = new ConfigurationBuilder().Build();

            using (var factory = new SimulatedInstrumentFactory(configuration))
            {
                using (var target = new FactoryProducedInstanceGroup(factory))
                {
                    // Act.
                    var result = target.Get <SimulatedInstrument>();

                    // Assert.
                    result.Should().NotBeNull();
                    result.Should().BeOfType <SimulatedInstrument>();
                }
            }
        }
Example #2
0
        public void Get_ShouldRaiseArgumentException_ForUnsupportedTypes()
        {
            // Arrange.
            var configuration = new ConfigurationBuilder().Build();

            using (var factory = new SimulatedInstrumentFactory(configuration))
            {
                using (var target = new FactoryProducedInstanceGroup(factory))
                {
                    // Act.
                    var action = new Action(() =>
                    {
                        target.Get <DateTimeRange>();
                    });

                    // Assert.
                    action.Should().Throw <ArgumentException>();
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DataAccessCommandHandler{TCommand}" /> class.
 /// </summary>
 /// <param name="mediator">
 /// A processing intermediary that is used to process sub-commands.
 /// </param>
 /// <param name="repositoryFactory">
 /// The factory that produces data access repositories for the handler.
 /// </param>
 /// <param name="transaction">
 /// A transaction that is used to process the command.
 /// </param>
 /// <exception cref="ArgumentException">
 /// <paramref name="transaction" /> is in an invalid state.
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="mediator" /> is <see langword="null" /> -or- <paramref name="repositoryFactory" /> is
 /// <see langword="null" /> -or- <paramref name="transaction" /> is <see langword="null" />.
 /// </exception>
 protected DataAccessCommandHandler(ICommandMediator mediator, IDataAccessRepositoryFactory repositoryFactory, IDataAccessTransaction transaction)
     : base(mediator)
 {
     Repositories = new FactoryProducedInstanceGroup(repositoryFactory);
     Transaction  = transaction.RejectIf().IsNull(nameof(transaction)).OrIf((argument) => argument.State != DataAccessTransactionState.Ready, nameof(transaction)).TargetArgument;
 }