public void LinqSelectTest()
        {
            IDatabase fakeDb = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient");
            TestEntityRepository repository = new TestEntityRepository(fakeDb);

            SelectCommand expectedCommand = fakeDb.CreateSelectCommand(repository.TableName)
                .Querys("TestColumn1", "TestColumn2", "TestColumn5", "TestColumn8")
                .Query("TestColumn3", "TTTT")
                .Query(SqlAggregateFunction.Max, "TestColumn4", "MMMM")
                .Where(c => c.GreaterThanOrEqual("TestColumn2", 123) | (c.GreaterThan("TestColumn4", DateTime.Now) & c.LessThan("TestColumn7", DateTime.Now.AddDays(7))))
                .GroupBy("TestColumn3")
                .InnerJoin("TestColumn2", "TestTable", "TestColumn2")
                .OrderBy("TestTable", "TestColumn6", SqlOrderType.Asc);

            SelectCommand actualCommand = fakeDb.CreateSelectCommand(repository.TableName)
                .Querys<TestEntity>(c => new { c.Test1, c.Test2, c.Test5, c.Test8 })
                .Query<TestEntity>(c => c.Test3, "TTTT")
                .Query<TestEntity>(c => c.Test4, SqlAggregateFunction.Max, "MMMM")
                .Where<TestEntity>(c => c.Test2 >= 123 || (c.Test4 > DateTime.Now && c.Test7 < DateTime.Now.AddDays(7)))
                .GroupBy<TestEntity>(c => c.Test3)
                .InnerJoin<TestEntity, TestEntity>(c => c.Test2, d => d.Test2)
                .OrderBy<TestEntity>(c => c.Test6, SqlOrderType.Asc);

            Assert.AreEqual(expectedCommand, actualCommand);
        }
        public void EntityUpdateTest()
        {
            AbstractDatabase fakeDb = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            TestEntityRepository repository = new TestEntityRepository(fakeDb);
            TestEntity entity = new TestEntity() { Test1 = "1", Test2 = 2, Test3 = 3.0, Test4 = DateTime.Now, Test8 = 8 };

            String expectedSql = "UPDATE TestTable SET TestColumn1=@PN_IDX_0,TestColumn2=@PN_IDX_1,TestColumn3=@PN_IDX_2,TestColumn4=@PN_IDX_3,TestColumn5=@PN_IDX_4,TestColumn6=@PN_IDX_5,TestColumn7=@PN_IDX_6,TestColumn8=@PN_IDX_7";
            DataParameter[] expectedParameter = new DataParameter[8]
            {
                DataParameter.InternalCreate(fakeDb, "TestColumn1", "0", entity.Test1),
                DataParameter.InternalCreate(fakeDb, "TestColumn2", "1", entity.Test2),
                DataParameter.InternalCreate(fakeDb, "TestColumn3", "2", entity.Test3),
                DataParameter.InternalCreate(fakeDb, "TestColumn4", "3", entity.Test4),
                DataParameter.InternalCreate(fakeDb, "TestColumn5", "4", DataType.Int32, entity.Test5),
                DataParameter.InternalCreate(fakeDb, "TestColumn6", "5", DataType.Double, entity.Test6),
                DataParameter.InternalCreate(fakeDb, "TestColumn7", "6", DataType.DateTime, entity.Test7),
                DataParameter.InternalCreate(fakeDb, "TestColumn8", "7", DataType.Int16, entity.Test8)
            };

            UpdateCommand cmd = fakeDb.CreateUpdateCommand(repository.TableName).Set(entity);
            String actualSql = cmd.GetCommandText().Trim();
            DataParameter[] actualParameter = cmd.GetAllParameters();

            Assert.AreEqual(expectedSql, actualSql);

            for (Int32 i = 0; i < actualParameter.Length; i++)
            {
                Assert.AreEqual(expectedParameter[i], actualParameter[i]);
            }
        }
        public void Setup()
        {
            var options = new DbContextOptionsBuilder <TestContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            _context = new TestContext(options);

            _repository = new TestEntityRepository(_context);

            DateTime now = DateTime.UtcNow;

            _entity = new TestEntity
            {
                Created  = now,
                Id       = Guid.NewGuid(),
                Updated  = now,
                Property = string.Empty
            };

            _context.Table.Add(_entity);

            _listEntities = GetTestList();
            _context.Table.AddRange(_listEntities);

            _context.SaveChanges();

            _repository = new TestEntityRepository(_context);
        }
示例#4
0
        public IActionResult GetById(long entityId)
        {
            var entity = TestEntityRepository.GetById(entityId);

            if (entity == null)
            {
                throw new Exception($"Nincs ilyen rekord! id: {entityId}");
            }

            return(Json(new { entity }));
        }
示例#5
0
        public IActionResult StepOne(long entityId)
        {
            var entity = TestEntityRepository.GetById(entityId);
            var change = StateChangeFactory.CreateChange(typeof(OneToTwoChange)) as OneToTwoChange;

            change.SetEntity(entity);

            StateManagger.ManageTransition(change, TestEntityStates.SecondPlace);
            TestEntityRepository.SaveChanges();

            return(Json(new { }));
        }
示例#6
0
        public IActionResult Create([FromBody] string message)
        {
            var entity = new TestEntityModel
            {
                Message = message
            };

            TestEntityRepository.Add(entity);
            TestEntityRepository.SaveChanges();

            return(Json(new { entity.Id }));
        }
示例#7
0
        public IActionResult StepFour(long entityId, [FromBody] FourToFiveVM fourToFiveVM)
        {
            var entity = TestEntityRepository.GetById(entityId);
            var change = StateChangeFactory.CreateChange(typeof(FourToFiveChange)) as FourToFiveChange;

            change.SetEntity(entity);

            StateManagger.ManageTransition(change, TestEntityStates.FifthPlace, fourToFiveVM);
            TestEntityRepository.SaveChanges();

            return(Json(new { }));
        }
示例#8
0
        public IActionResult StepThree(long entityId)
        {
            var entity = TestEntityRepository.GetById(entityId);
            var change = StateChangeFactory.CreateChange(typeof(ThreeToFourChange)) as ThreeToFourChange;

            change.SetEntity(entity);
            change.SetPreviousStep(typeof(TwoToThreeChange).FullName);

            StateManagger.ManageTransition <TestEntityModel, TestEntityStates, BasicTask, BasicTaskAcl>(change, TestEntityStates.FourthPlace, secureBasicTaskRepository);
            TestEntityRepository.SaveChanges();

            return(Json(new { }));
        }
示例#9
0
        public IActionResult StepTwo(long entityId)
        {
            var entity = TestEntityRepository.GetById(entityId);
            var change = StateChangeFactory.CreateChange(typeof(TwoToThreeChange)) as TwoToThreeChange;

            change.SetEntity(entity);

            var tasks = StateManagger.ManageTransition <TestEntityModel, TestEntityStates, BasicTask, BasicTaskAcl>(change, TestEntityStates.ThirdPlace, secureBasicTaskRepository);

            //TestEntityRepository.SaveChanges();

            return(Json(new { ids = tasks.Select(x => x.Id) }));
        }
示例#10
0
        public void Initialise()
        {
            this.repository = new TestEntityRepository(base.DataContext);
            this.unitOfWork = base.Services.GetService <IUnitOfWork>();

            var entities = new TestEntity[]
            {
                new TestEntity {
                    Name = "Update Me", CreatedDate = DateTime.Now.Date
                },
                new TestEntity {
                    Name = "Delete Me", CreatedDate = DateTime.Now.Date
                }
            };

            this.repository.Insert(entities);
            unitOfWork.Commit();
        }
        public void LinqInsertTest()
        {
            AbstractDatabase fakeDb = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            TestEntityRepository repository = new TestEntityRepository(fakeDb);
            TestEntity entity = new TestEntity() { Test1 = "1", Test2 = 2, Test3 = 3.0, Test4 = DateTime.Now, Test8 = 8 };

            String expectedSql = "INSERT INTO TestTable ( TestColumn1,TestColumn2,TestColumn3,TestColumn4,TestColumn5,TestColumn6,TestColumn7,TestColumn8 ) " +
                "VALUES ( @PN_IDX_0,@PN_IDX_1,@PN_IDX_2,@PN_IDX_3,@PN_IDX_4,@PN_IDX_5,@PN_IDX_6,@PN_IDX_7 )";
            DataParameter[] expectedParameter = new DataParameter[8]
            {
                DataParameter.InternalCreate(fakeDb, "TestColumn1", "0", entity.Test1),
                DataParameter.InternalCreate(fakeDb, "TestColumn2", "1", entity.Test2),
                DataParameter.InternalCreate(fakeDb, "TestColumn3", "2", entity.Test3),
                DataParameter.InternalCreate(fakeDb, "TestColumn4", "3", entity.Test4),
                DataParameter.InternalCreate(fakeDb, "TestColumn5", "4", DataType.Int32, entity.Test5),
                DataParameter.InternalCreate(fakeDb, "TestColumn6", "5", DataType.Double, entity.Test6),
                DataParameter.InternalCreate(fakeDb, "TestColumn7", "6", DataType.DateTime, entity.Test7),
                DataParameter.InternalCreate(fakeDb, "TestColumn8", "7", DataType.Int16, entity.Test8)
            };

            InsertCommand cmd = fakeDb.CreateInsertCommand(repository.TableName)
                .Set<TestEntity>(c => c.Test1, entity.Test1)
                .Set<TestEntity>(c => c.Test2, entity.Test2)
                .Set<TestEntity>(c => c.Test3, entity.Test3)
                .Set<TestEntity>(c => c.Test4, entity.Test4)
                .Set<TestEntity>(c => c.Test5, entity.Test5)
                .Set<TestEntity>(c => c.Test6, entity.Test6)
                .Set<TestEntity>(c => c.Test7, entity.Test7)
                .Set<TestEntity>(c => c.Test8, entity.Test8);

            String actualSql = cmd.GetCommandText().Trim();
            DataParameter[] actualParameter = cmd.GetAllParameters();

            Assert.AreEqual(expectedSql, actualSql);

            for (Int32 i = 0; i < actualParameter.Length; i++)
            {
                Assert.AreEqual(expectedParameter[i], actualParameter[i]);
            }
        }
示例#12
0
 public TestComponent()
 {
     _testEntityRepository = new TestEntityRepository();
 }
 public void Setup()
 {
     this.repository = Kernel.Get <TestEntityRepository>();
 }
        public void LinqIncreaseTest()
        {
            AbstractDatabase fakeDb = DatabaseFactory.CreateDatabase("", "System.Data.SqlClient") as AbstractDatabase;
            TestEntityRepository repository = new TestEntityRepository(fakeDb);
            TestEntity entity = new TestEntity() { Test1 = "1", Test2 = 2, Test3 = 3.0, Test4 = DateTime.Now, Test8 = 8 };

            String expectedSql = "UPDATE TestTable SET TestColumn2=(TestColumn2+1)";
            DataParameter[] expectedParameter = new DataParameter[0];

            UpdateCommand cmd = fakeDb.CreateUpdateCommand(repository.TableName).Increase<TestEntity>(c => c.Test2);
            String actualSql = cmd.GetCommandText().Trim();
            DataParameter[] actualParameter = cmd.GetAllParameters();

            Assert.AreEqual(expectedSql, actualSql);
            Assert.AreEqual(expectedParameter.Length, actualParameter.Length);
        }
 static SelectCommandCreateTest()
 {
     _repository = new TestEntityRepository();
 }
 static InsertCommandCreateTest()
 {
     _repository = new TestEntityRepository();
     _entity = new TestEntity() { Test1 = "1", Test2 = 2, Test3 = 3.0, Test4 = DateTime.Now, Test8 = 8 };
 }