Beispiel #1
0
        public async Task Should_be_when_projected_multiple()
        {
            //Arrange
            var connector = new InMemoryConnector();

            var projector = new ConnectedProjector <InMemoryConnector>(connector, _ => new List <IProjection <InMemoryConnector> >
            {
                new CarProjection(),
                new CarHistoryProjection()
            });

            var @event = new CarRegisteredEvent("123", "Ferrari");

            //Act
            await projector.ProjectAsync(@event).ConfigureAwait(false);

            //Assertion
            var carView = connector.Get <CarView>("123");

            carView.Should().NotBeNull();
            carView.Name.Should().Be("Ferrari");

            var carHistoryView = connector.Get <CarHistoryView>("123");

            carHistoryView.Should().NotBeNull();
            carHistoryView.Name.Should().Be("Ferrari");
        }
Beispiel #2
0
        public void Should_throw_not_registered_when_projected()
        {
            //Arrange
            var connector = new InMemoryConnector();

            var projector = new ConnectedProjector <InMemoryConnector>(connector, _ => null);

            var @event = new CarRegisteredEvent("123", "Ferrari");

            //Act
            Func <Task> act = () => projector.ProjectAsync(@event);

            act.Should().Throw <ProjectionNotRegisteredException>();
        }
Beispiel #3
0
        public Given_in_memory_connector()
        {
            var connector = new InMemoryConnector();

            UseThe <ICosmosDbConnector>(connector);

            UseThe <IProjector>(() =>
                                new ConnectedProjector <ICosmosDbConnector>(connector, _ => new List <object> {
                new OrderProjections()
            })
                                );

            EnsureContainerInitialized();
        }
Beispiel #4
0
        public void Should_throw_not_found_when_projected()
        {
            //Arrange
            var connector = new InMemoryConnector();

            var projector = new ConnectedProjector <InMemoryConnector>(connector, _ => new List <IProjection <InMemoryConnector> >
            {
                new CarProjection()
            });

            var @event = new CarNameChangedEvent("123", "Ferrari");

            //Act
            Func <Task> act = () => projector.ProjectAsync(@event);

            act.Should().Throw <ProjectionNotFoundException>();
        }
		public InMemoryConnectorTests()
		{
			_reset = new AutoResetEvent(false);
			_connector = new InMemoryConnector();

			_exchangeDefinition = new ExchangeDefinition("Exchange" + Guid.NewGuid().ToString(), ExchangeType.Direct)
			{
				AutoDelete = true
			};

			_queueDefinition = new QueueDefinition
			{
				Name = "Queue" + Guid.NewGuid().ToString(),
				AutoDelete = true,
				RoutingKeys = new[] { "some.key" }
			};
		}