public async Task VecPostoji_DodajeStavke()
        {
            var cmd         = new ProknjiziIzvodCommand(Guid.NewGuid(), null, "1", new DateTime(2018, 10, 20), new List <StavkaIzvodaDTO>());
            var nalogIzBaze = FinNalogHelper.NalogFromDb(callBase: false);

            nalogIzBaze.SetupGet(x => x.Version).Returns(17);
            var fakeNalogRepo = new Mock <IFinNalogRepository>();

            fakeNalogRepo.Setup(x => x.GetPostojeciAsync(TipNaloga.Izvodi, cmd.Datum)).ReturnsAsync(nalogIzBaze.Object.Id);
            fakeNalogRepo.Setup(x => x.GetAsync(nalogIzBaze.Object.Id)).ReturnsAsync(nalogIzBaze.Object);
            var fakeLogger   = new Mock <ILogger <ProknjiziIzvodCommandHandler> >();
            var fakeIzvodSvc = new Mock <IIzvodService>();

            fakeIzvodSvc.Setup(x => x.FormirajStavkeNalogaAsync(It.IsAny <IEnumerable <StavkaIzvoda> >())).ReturnsAsync(new List <FinStavka>
            {
                new FinStavka(1, 100, 0, "opis stavke 1"),
                new FinStavka(2, 200, 0, "opis stavke 2")
            });
            var handler = new ProknjiziIzvodCommandHandler(fakeNalogRepo.Object, fakeIzvodSvc.Object, fakeLogger.Object);

            await handler.Handle(cmd, default);

            nalogIzBaze.Verify(x => x.ProknjiziStavku(It.IsNotNull <FinStavka>()), Times.Exactly(2));
            nalogIzBaze.Verify(x => x.ProknjiziStavku(It.Is <FinStavka>(s =>
                                                                        s.IdKonto == 1 && s.Iznos.Duguje == 100 && s.Iznos.Potrazuje == 0 && s.Opis == "opis stavke 1")));
            nalogIzBaze.Verify(x => x.ProknjiziStavku(It.Is <FinStavka>(s =>
                                                                        s.IdKonto == 2 && s.Iznos.Duguje == 200 && s.Iznos.Potrazuje == 0 && s.Opis == "opis stavke 2")));
            fakeNalogRepo.Verify(x => x.SaveAsync(nalogIzBaze.Object, cmd.CommandId, nalogIzBaze.Object.Version, cmd.UserId));
        }
        public async Task NePostoji_OtvaraNovi()
        {
            var cmd           = new ProknjiziIzvodCommand(Guid.NewGuid(), null, "1", new DateTime(2018, 10, 20), new List <StavkaIzvodaDTO>());
            var fakeNalogRepo = new Mock <IFinNalogRepository>();

            fakeNalogRepo.Setup(x => x.GetPostojeciAsync(TipNaloga.Izvodi, cmd.Datum)).ReturnsAsync(null as FinNalogId);
            var fakeLogger   = new Mock <ILogger <ProknjiziIzvodCommandHandler> >();
            var fakeIzvodSvc = new Mock <IIzvodService>();

            fakeIzvodSvc.Setup(x => x.FormirajStavkeNalogaAsync(It.IsAny <IEnumerable <StavkaIzvoda> >())).ReturnsAsync(new List <FinStavka>
            {
                new FinStavka(1, 100, 0, "opis stavke 1")
            });
            var handler = new ProknjiziIzvodCommandHandler(fakeNalogRepo.Object, fakeIzvodSvc.Object, fakeLogger.Object);

            await handler.Handle(cmd, default);

            fakeNalogRepo.Verify(x => x.SaveAsync(It.IsNotNull <FinNalog>(), cmd.CommandId, cmd.Version, cmd.UserId));
        }