Пример #1
0
        public void CreateEntityWithValidInput()
        {
            // ARRANGE
            DTOModelA modelA = new DTOModelA
            {
                Id      = 0,
                Name    = "Pippo",
                Surname = "Poppi"
            };

            DTOModelA result = new DTOModelA();

            IEntityA mockEntityA = Substitute.For <EntityAMock>();

            IRepositoryA mockRepositoryA = Substitute.For <RepositoryAMock>();

            mockRepositoryA.CreateEntity(mockEntityA);

            IDataStore    mockDataStore    = Substitute.For <DataStoreMock>();
            IDataSupplier mockDataSupplier = Substitute.For <DataSupplierMock>();
            ICoreStore    mockCoreStore    = Substitute.For <CoreStoreMock>();

            // ACT
            ICoreSupplier testCoreSupplier = CoreSupplier.Instance(mockCoreStore);

            testCoreSupplier.GetFeatureA.CreatePost(modelA);
            result = testCoreSupplier.GetFeatureA.DetailsGet(modelA);

            // ASSERT
            Assert.IsInstanceOf <DTOModelA>(result);
            Assert.AreEqual(modelA.Id, result.Id);
        }
Пример #2
0
        public void testDefaultConstructorOnInterface()
        {
            IEntityA entity = EntityFactory.CreateEntity <IEntityA>();

            Assert.AssertNotNull(entity);

            ConstructorInfo[] declaredConstructors = entity.GetType().GetConstructors(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
            Assert.AssertEquals(1, declaredConstructors.Length);

            ConstructorInfo defaultConstructor = declaredConstructors[0];

            Assert.AssertEquals(0, defaultConstructor.GetParameters().Length);
        }
Пример #3
0
        public int CreateEntity(IEntityA entityA)
        {
            try
            {
                if (entityA != null)
                {
                    entityA.Id = new Random().Next();

                    RepositoryDbContext.EntitiesA.Add(entityA);

                    return(entityA.Id);
                }
            }
            catch (Exception exception)
            {
                throw new DbUpdateException(GetType().FullName + " - " + MethodBase.GetCurrentMethod().Name, exception);
            }

            return(0);
        }
Пример #4
0
        public bool DeleteEntity(IEntityA entityA)
        {
            try
            {
                EntityA original = (EntityA)RepositoryDbContext.EntitiesA.Find(entityA.Id);

                if (original != null)
                {
                    RepositoryDbContext.EntitiesA.Remove(original);

                    return(true);
                }
            }
            catch (Exception exception)
            {
                throw new DbUpdateException(GetType().FullName + " - " + MethodBase.GetCurrentMethod().Name, exception);
            }

            return(false);
        }
Пример #5
0
        public EntityADto EntityMapping(IEntityA entityA)//
        {
            // Comprobamos el parámetro de entrada.
            Guard.ArgumentIsNotNull(
                entityA,
                string.Format(
                    Inflexion2.Resources.Framework.MapperErrorEntityNull,
                    "Entity A")                                 // usar un fichero de recursos para el dominio de negocio Company.Product.BoundedContext.Resources.Business.CategoriaAlias
                );

            EntityADto entityADto = new EntityADto();

            // propiedades
            entityADto.Id   = entityA.Id;
            entityADto.Name = entityA.Name;

            // composiciones
            entityADto.EntitiesofC = new List <EntityCDto>();
            var entityCMapper = new EntityCMapper();

            foreach (IEntityC entity in entityA.EntitiesofC)
            {
                var entityDto = entityCMapper.EntityMapping(entity);
                entityADto.EntitiesofC.Add(entityDto);
            }

            // agregados
            entityADto.EntitiesofB = new List <int>();
            foreach (var entity in entityA.EntitiesofB)
            {
                var Tidentifier = entity.Id;
                entityADto.EntitiesofB.Add(Tidentifier);
            }

            // Devolvemos el resultado.
            return(entityADto);
        } // EntityMapping
Пример #6
0
        public EntityADto EntityMapping(IEntityA entityA)//
        {
            // Comprobamos el parámetro de entrada.
            Guard.ArgumentIsNotNull(
                                    entityA,
                                    string.Format(
                                                    Inflexion2.Resources.Framework.MapperErrorEntityNull,
                                                    "Entity A") // usar un fichero de recursos para el dominio de negocio Company.Product.BoundedContext.Resources.Business.CategoriaAlias
                                                 );

            EntityADto entityADto = new EntityADto();
            // propiedades
            entityADto.Id = entityA.Id;
            entityADto.Name = entityA.Name;

            // composiciones
            entityADto.EntitiesofC = new List<EntityCDto>();
            var entityCMapper = new EntityCMapper();
            foreach (IEntityC entity in entityA.EntitiesofC)
            {
                var entityDto = entityCMapper.EntityMapping(entity);
                entityADto.EntitiesofC.Add(entityDto);
            }

            // agregados
            entityADto.EntitiesofB = new List<int>();
            foreach (var entity in entityA.EntitiesofB)
            {
                var Tidentifier = entity.Id; 
                entityADto.EntitiesofB.Add(Tidentifier);
            }

            // Devolvemos el resultado.
            return entityADto;

        } // EntityMapping
Пример #7
0
 public bool UpdateEntity(IEntityA entityA)
 {
     throw new NotImplementedException();
 }
Пример #8
0
 public int CreateEntity(IEntityA entityA)
 {
     return(entityA.Id);
 }
Пример #9
0
        public void starter()
        {
            this.unityContainer = new UnityContainer();

            ServiceLocator.Initialize(
                (x, y) => this.unityContainer.RegisterType(x, y),
                (x, y) => this.unityContainer.RegisterInstance(x, y),
                (x) => { return(this.unityContainer.Resolve(x)); },
                (x) => { return(this.unityContainer.ResolveAll(x)); });

            // Context Factory
            connString = this.ConnectionString();
            RootAggregateFrameworkUnitOfWorkFactory <BootstrapUnitOfWork> ctxFactory = new RootAggregateFrameworkUnitOfWorkFactory <BootstrapUnitOfWork>(connString);

            if (!ctxFactory.DatabaseExists())
            {
                ctxFactory.CreateDatabase();
            }

            ctxFactory.ValidateDatabaseSchema();

            this.unityContainer.RegisterInstance <IDatabaseManager>(ctxFactory);

            this.unityContainer.RegisterType <DbContext, BootstrapUnitOfWork>(this.contextPerTestLifeTimeManager, new InjectionConstructor(connString));

            this.unityContainer.RegisterType <IUnitOfWork, EntityFrameworkUnitOfWork>(this.unitOfWorkPerTestLifeTimeManager);

            // Repositories
            this.unityContainer.RegisterType <IEntityARepository, EntityARepository>(new PerResolveLifetimeManager());
            this.unityContainer.RegisterType <IEntityBRepository, EntityBRepository>(new PerResolveLifetimeManager());

            ApplicationContext.User = new CorePrincipal(new CoreIdentity("cmendible", "hexa.auth", "*****@*****.**"), new string[] { });

            // comienzan las operaciones
            // añadimos una entidad
            // metodo sin factoria y con constructor publico
            //var entityA = new EntityA();
            // entityA.Name = "Martin";
            // metodo con factoria y constructor interno
            IEntityA entityA = EntityAFactory.Create("Martin");


            entityA.CanBeDeleted();

            IEntityARepository repo = this.unityContainer.Resolve <IEntityARepository>();

            repo.Add((EntityA)entityA);


            this.Commit();
            entityA.CanBeDeleted();

            // añadimos 2 entidades y su relación
            var a = EntityAFactory.Create("Willi");

            var b = EntityBFactory.Create("matematicas");


            a.AddB(b);

            IEntityARepository repoA = this.unityContainer.Resolve <IEntityARepository>();
            IEntityBRepository repoB = this.unityContainer.Resolve <IEntityBRepository>();

            repoB.Add((EntityB)b);
            repoA.Add((EntityA)a);

            this.Commit();


            //añadimos una entidad c dependiente de entidad a la primera entidad a

            EntityA padre = repoA.GetFilteredElements(e => e.Id == 1).FirstOrDefault();
            EntityC hijo  = EntityCFactory.Create(padre, "hijo");

            this.Commit();

            padre = repoA.GetFilteredElements(e => e.Id == 1).FirstOrDefault();
            padre.CanBeDeleted();
        }