예제 #1
0
        public void Test1()
        {
            // Arrange
            string guid_anuncio   = "998BA42D-8FA0-405B-AB6A-CF1D5105A663";
            string guid_acessorio = "F72BD96C-3BF9-48D3-9FBD-561BE96FE9E5";
            var    command        = new AdicionarAcessorioAnuncioCommand()
            {
                AnuncioId   = guid_anuncio,
                AcessorioId = guid_acessorio
            };

            // criar um EventStore Fake
            var anuncio    = new Anuncio("Titulo", "Descricao", 10.0M, CondicaoUso.Usado, aceitoTroca: true);
            var eventStore = new EventStoreFake <Anuncio>(anuncio);

            // criar um instancia do CommandHandler
            var handler = new AdicionarAcessorioAnuncioCommandHandler(eventStore);

            // Act
            handler.Handle(command);

            // Assert
            // Avaliar se foi salvo no EventStore / meu anuncio tem um evento ()
            Assert.NotNull(eventStore.AggregateStored);
            Assert.Contains(new Identity(guid_acessorio), eventStore.AggregateStored.Acessorios);
        }
예제 #2
0
        public object AdicionarAcessorioAoAnuncio(string id, [FromBody] AdicionarAcessorioAnuncioCommand command)
        {
            if (string.IsNullOrEmpty(command.AnuncioId))
            {
                command.AnuncioId = id;
            }

            if (id != command.AnuncioId)
            {
                throw new InvalidOperationException();
            }

            return(CommandBus.Send <AdicionarAcessorioAnuncioCommand, bool>(command));
        }