示例#1
0
        public void WhenInserting3EntitiesInTransactionWeGetAll3()
        {
            // insert 3 entitati Categorie, Client, Produs
            var categorie = new Categorie {
                Nume = "Produs XXX"
            };
            var client = new Client {
                Nume = "Client XXX", CNP = "232323232", Prenume = "Client XXX prenume"
            };
            var produs = new Produs {
                Nume = "Produs YYY", CategorieId = 1, Pret = 12
            };

            using (var connection = new SqlConnection(connectionString))
            {
                connection.Open();

                var categorieRepository = new AdoNetCategorieRepository(connection);
                var clientRepository    = new AdoNetClientRepository(connection);
                var produsRepository    = new AdoNetProdusRepository(connection);

                var categorieId = categorieRepository.Insert(categorie);
                var clientId    = clientRepository.Insert(client);
                var produsId    = produsRepository.Insert(produs);

                var categorieActual = categorieRepository.GetById(categorieId);
                var clientActual    = clientRepository.GetById(clientId);
                var produsActual    = produsRepository.GetById(produsId);

                categorie.AssertAreSame(categorieActual, false);
                client.AssertAreSame(clientActual, false);
                produs.AssertAreSame(produsActual, false);
            }
        }
示例#2
0
        public void WhenInserting3EntitiesWithCategorieNonExistentWeGet()
        {
            // insert 3 entitati Categorie, Client, Produs
            var categorie = new Categorie {
                Nume = "Produs XXX"
            };
            var client = new Client {
                Nume = "Client XXX", CNP = "232323232", Prenume = "Client XXX prenume"
            };
            var produs = new Produs {
                Nume = "Produs YYY", CategorieId = 99999999, Pret = 12
            };

            int categorieId = 0;
            int clientId    = 0;
            int produsId    = 0;

            Categorie categorieActual = null;
            Client    clientActual    = null;
            Produs    produsActual    = null;

            try
            {
                using (var transactionScope = new TransactionScope())
                {
                    using (var connection = new SqlConnection(connectionString))
                    {
                        connection.Open();

                        var categorieRepository = new AdoNetCategorieRepository(connection);
                        var clientRepository    = new AdoNetClientRepository(connection);
                        var produsRepository    = new AdoNetProdusRepository(connection);

                        categorieId = categorieRepository.Insert(categorie);
                        clientId    = clientRepository.Insert(client);
                        produsId    = produsRepository.Insert(produs);

                        categorieActual = categorieRepository.GetById(categorieId);
                        clientActual    = clientRepository.GetById(clientId);
                        produsActual    = produsRepository.GetById(produsId);

                        categorie.AssertAreSame(categorieActual, false);
                        client.AssertAreSame(clientActual, false);
                        produs.AssertAreSame(produsActual, false);
                    }

                    transactionScope.Complete();
                }
            }
            catch (SqlException)
            {
                using (var connection = new SqlConnection(connectionString))
                {
                    connection.Open();

                    var categorieRepository = new AdoNetCategorieRepository(connection);
                    var clientRepository    = new AdoNetClientRepository(connection);
                    var produsRepository    = new AdoNetProdusRepository(connection);

                    categorieActual = categorieRepository.GetById(categorieId);
                    clientActual    = clientRepository.GetById(clientId);
                    produsActual    = produsRepository.GetById(produsId);
                }

                Assert.IsNull(categorieActual);
                Assert.IsNull(clientActual);
                Assert.IsNull(produsActual);
            }
        }