Esempio n. 1
0
 public void Configure(EntityTypeBuilder <CashAccount> entity)
 {
     entity.ToTable("CashAccounts", schema: "Finance");
     entity.HasKey(e => e.Id);
     entity.Property(p => p.Id).HasColumnType("UNIQUEIDENTIFIER").HasColumnName("CashAccountId");
     entity.HasMany(p => p.CashAccountTransactions).WithOne().HasForeignKey(p => p.CashAccountId);
     entity.Property(p => p.BankName)
     .HasConversion(p => p.Value, p => BankName.Create(p))
     .HasColumnType("NVARCHAR(50)")
     .HasColumnName("BankName")
     .IsRequired();
     entity.Property(p => p.CashAccountName)
     .HasConversion(p => p.Value, p => CashAccountName.Create(p))
     .HasColumnType("NVARCHAR(50)")
     .HasColumnName("AccountName")
     .IsRequired();
     entity.Property(p => p.CashAccountNumber)
     .HasConversion(p => p.Value, p => CashAccountNumber.Create(p))
     .HasColumnType("NVARCHAR(50)")
     .HasColumnName("AccountNumber")
     .IsRequired();
     entity.Property(p => p.RoutingTransitNumber)
     .HasConversion(p => p.Value, p => RoutingTransitNumber.Create(p))
     .HasColumnType("NCHAR(9)")
     .HasColumnName("RoutingTransitNumber")
     .IsRequired();
     entity.Property(p => p.DateOpened)
     .HasConversion(p => p.Value, p => DateOpened.Create(p))
     .HasColumnType("datetime2(0)")
     .HasColumnName("DateOpened")
     .IsRequired();
     entity.Property(p => p.UserId)
     .HasConversion(p => p.Value, p => UserId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("UserId")
     .IsRequired();
     entity.Property(e => e.CreatedDate)
     .HasColumnType("datetime2(7)")
     .ValueGeneratedOnAdd()
     .HasDefaultValueSql("sysdatetime()");
     entity.Property(e => e.LastModifiedDate).HasColumnType("datetime2(7)");
 }
        public async Task ShouldInsert_CashAccount_UsingCashAccountRepo()
        {
            CashAccount account = new CashAccount
                                  (
                CashAccountId.Create(new Guid("1e5b3dcf-9ffd-4671-95ee-373e4ca08804")),
                BankName.Create("ABCDEFG Banking & Hair Stylist, Inc."),
                CashAccountName.Create("Entertainment"),
                CashAccountNumber.Create("12345-678987"),
                RoutingTransitNumber.Create("125478991"),
                DateOpened.Create(new DateTime(2021, 11, 6)),
                UserId.Create(new Guid("660bb318-649e-470d-9d2b-693bfb0b2744"))
                                  );

            await _cashAcctRepo.AddAsync(account);

            await _unitOfWork.Commit();

            var result = await _cashAcctRepo.Exists(account.Id);

            Assert.True(result);
        }
        public async Task ShouldUpdate_CashAccount_UsingCashAccountRepo()
        {
            CashAccount account = await _cashAcctRepo.GetByIdAsync(new Guid("765ec2b0-406a-4e42-b831-c9aa63800e76"));

            account.UpdateBankName(BankName.Create("Test Bank"));
            account.UpdateCashAccountName(CashAccountName.Create("Testing Account"));
            account.UpdateCashAccountNumber(CashAccountNumber.Create("9876543210"));
            account.UpdateRoutingTransitNumber(RoutingTransitNumber.Create("125478991"));
            account.UpdateDateOpened(DateOpened.Create(new DateTime(2021, 11, 7)));
            account.UpdateUserId(UserId.Create(UserId.Create(new Guid("660bb318-649e-470d-9d2b-693bfb0b2744"))));

            await _unitOfWork.Commit();

            CashAccount result = await _cashAcctRepo.GetByIdAsync(new Guid("765ec2b0-406a-4e42-b831-c9aa63800e76"));

            Assert.Equal("Test Bank", result.BankName);
            Assert.Equal("Testing Account", result.CashAccountName);
            Assert.Equal("9876543210", result.CashAccountNumber);
            Assert.Equal("125478991", result.RoutingTransitNumber);
            Assert.Equal(new DateTime(2021, 11, 7), result.DateOpened);
            Assert.Equal(new Guid("660bb318-649e-470d-9d2b-693bfb0b2744"), result.UserId);
        }