public IProductManagementService ResolveProductManagementService()
        {
            string connectionString =
                ConfigurationManager.ConnectionStrings
                ["CommerceObjectContext"].ConnectionString;

            // Inner Product Repository
            ProductRepository sqlRepository =
                new SqlProductRepository(connectionString);

            IAuditor sqlAuditor =
                new SqlAuditor(connectionString);

            // Decorator class
            ProductRepository auditingRepository =
                new AuditingProductRepository(
                    sqlRepository, sqlAuditor);

            IContractMapper mapper = new ContractMapper();

            // Injection of Decorator to use it as an interceptor of
            // the inner class functionality
            return(new ProductManagementService(
                       auditingRepository, mapper));
        }
Beispiel #2
0
 public void SutIsProductRepository(AuditingProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     // Verify outcome
     Assert.IsAssignableFrom <ProductRepository>(sut);
     // Teardown
 }
Beispiel #3
0
        public IDictionary <string, AuditingProductEntity> QueryValidVersion(string hospitalId, string vendorId, DateTime orderApplyTime)
        {
            var list = AuditingProductRepository.Query(hospitalId, vendorId, orderApplyTime);
            var dic  = new Dictionary <string, AuditingProductEntity>();

            foreach (var item in list)
            {
                if (dic.Keys.Contains(item.ProductId))
                {
                    continue;
                }

                dic[item.ProductId] = item;
            }

            return(dic);
        }
Beispiel #4
0
        public IList <AuditingProductEntity> QueryLatestVesion(string hospitalId, string vendorId)
        {
            var list = AuditingProductRepository.Query(hospitalId, vendorId);
            var dic  = new Dictionary <string, AuditingProductEntity>();

            foreach (var item in list)
            {
                if (dic.Keys.Contains(item.ProductId))
                {
                    continue;
                }

                dic[item.ProductId] = item;
            }

            return(dic.Values.ToList());
        }
Beispiel #5
0
        public IProductManagementService ResolveProductManagementService()
        {
            string connectionString =
                ConfigurationManager.ConnectionStrings
                ["CommerceObjectContext"].ConnectionString;

            ProductRepository sqlRepository =
                new SqlProductRepository(connectionString);

            IAuditor sqlAuditor =
                new SqlAuditor(connectionString);

            ProductRepository auditingRepository =
                new AuditingProductRepository(
                    sqlRepository, sqlAuditor);

            IContractMapper mapper = new ContractMapper();

            return(new ProductManagementService(
                       auditingRepository, mapper));
        }
Beispiel #6
0
 public void Save(AuditingProductEntity entity)
 {
     AuditingProductRepository.Save(entity);
 }
Beispiel #7
0
 public void InsertProductWillAuditInsertion(Product product, [Frozen] Mock <IAuditor> auditorMock, AuditingProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     sut.InsertProduct(product);
     // Verify outcome
     auditorMock.Verify(a => a.Record(It.Is <AuditEvent>(ae => ae.Name == "ProductInserted" && ae.Data.Equals(product))));
     // Teardown
 }
Beispiel #8
0
 public void InsertProductWillInsertProductInDecoratedRepository(Product product, [Frozen] Mock <ProductRepository> repositoryMock, AuditingProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     sut.InsertProduct(product);
     // Verify outcome
     repositoryMock.Verify(r => r.InsertProduct(product));
     // Teardown
 }
Beispiel #9
0
 public void DeleteProductWillAuditDeletion(int id, [Frozen] Mock <IAuditor> auditorMock, AuditingProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     sut.DeleteProduct(id);
     // Verify outcome
     auditorMock.Verify(a => a.Record(It.Is <AuditEvent>(ae => ae.Name == "ProductDeleted" && ae.Data.Equals(id))));
     // Teardown
 }
Beispiel #10
0
 public void DeleteProductWillDeleteProductFromDecoratedRepository(int id, [Frozen] Mock <ProductRepository> repositoryMock, AuditingProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     sut.DeleteProduct(id);
     // Verify outcome
     repositoryMock.Verify(r => r.DeleteProduct(id));
     // Teardown
 }