Exemplo n.º 1
0
        public void IntegrationTest()
        {
            var connection = TestSession.GetConnection();

            connection.Open();
            #region good insertion and select by id test
            EmployeeModel inserted = new EmployeeModel();
            inserted.BusinessEntityID  = TestSession.Random.Next();
            inserted.NationalIDNumber  = TestSession.Random.RandomString(15);
            inserted.LoginID           = TestSession.Random.RandomString(256);
            inserted.OrganizationNode  = Microsoft.SqlServer.Types.SqlHierarchyId.Null; //TODO define how to generate random hierarchy id in test session;
            inserted.OrganizationLevel = TestSession.Random.RandomShort();
            inserted.JobTitle          = TestSession.Random.RandomString(50);
            inserted.BirthDate         = TestSession.Random.RandomDateTime();
            inserted.MaritalStatus     = TestSession.Random.RandomString(1);
            inserted.Gender            = TestSession.Random.RandomString(1);
            inserted.HireDate          = TestSession.Random.RandomDateTime();
            inserted.SalariedFlag      = Convert.ToBoolean(TestSession.Random.Next(1));
            inserted.VacationHours     = TestSession.Random.RandomShort();
            inserted.SickLeaveHours    = TestSession.Random.RandomShort();
            inserted.CurrentFlag       = Convert.ToBoolean(TestSession.Random.Next(1));
            inserted.rowguid           = Guid.NewGuid();
            inserted.ModifiedDate      = TestSession.Random.RandomDateTime();

            _tested.Insert(connection, new[] { inserted });

            var selectedAfterInsertion = _tested.GetByPrimaryKey(connection, new EmployeeModelPrimaryKey()
            {
                BusinessEntityID = inserted.BusinessEntityID,
            });

            CollectionAssert.IsNotEmpty(selectedAfterInsertion);
            var selectedAfterInsert = selectedAfterInsertion.Single();
            Assert.AreEqual(inserted.BusinessEntityID, selectedAfterInsert.BusinessEntityID);
            Assert.AreEqual(inserted.NationalIDNumber, selectedAfterInsert.NationalIDNumber);
            Assert.AreEqual(inserted.LoginID, selectedAfterInsert.LoginID);
            Assert.AreEqual(inserted.OrganizationNode, selectedAfterInsert.OrganizationNode);
            Assert.AreEqual(inserted.OrganizationLevel, selectedAfterInsert.OrganizationLevel);
            Assert.AreEqual(inserted.JobTitle, selectedAfterInsert.JobTitle);
            Assert.AreEqual(inserted.BirthDate, selectedAfterInsert.BirthDate);
            Assert.AreEqual(inserted.MaritalStatus, selectedAfterInsert.MaritalStatus);
            Assert.AreEqual(inserted.Gender, selectedAfterInsert.Gender);
            Assert.AreEqual(inserted.HireDate, selectedAfterInsert.HireDate);
            Assert.AreEqual(inserted.SalariedFlag, selectedAfterInsert.SalariedFlag);
            Assert.AreEqual(inserted.VacationHours, selectedAfterInsert.VacationHours);
            Assert.AreEqual(inserted.SickLeaveHours, selectedAfterInsert.SickLeaveHours);
            Assert.AreEqual(inserted.CurrentFlag, selectedAfterInsert.CurrentFlag);
            Assert.AreEqual(inserted.rowguid, selectedAfterInsert.rowguid);
            Assert.AreEqual(inserted.ModifiedDate, selectedAfterInsert.ModifiedDate);

            #endregion

            #region update and select by id test
            inserted.NationalIDNumber  = TestSession.Random.RandomString(15);
            inserted.LoginID           = TestSession.Random.RandomString(256);
            inserted.OrganizationNode  = Microsoft.SqlServer.Types.SqlHierarchyId.Null; //TODO define how to generate random hierarchy id in test session;
            inserted.OrganizationLevel = TestSession.Random.RandomShort();
            inserted.JobTitle          = TestSession.Random.RandomString(50);
            inserted.BirthDate         = TestSession.Random.RandomDateTime();
            inserted.MaritalStatus     = TestSession.Random.RandomString(1);
            inserted.Gender            = TestSession.Random.RandomString(1);
            inserted.HireDate          = TestSession.Random.RandomDateTime();
            inserted.SalariedFlag      = Convert.ToBoolean(TestSession.Random.Next(1));
            inserted.VacationHours     = TestSession.Random.RandomShort();
            inserted.SickLeaveHours    = TestSession.Random.RandomShort();
            inserted.CurrentFlag       = Convert.ToBoolean(TestSession.Random.Next(1));
            inserted.rowguid           = Guid.NewGuid();
            inserted.ModifiedDate      = TestSession.Random.RandomDateTime();

            _tested.Update(connection, new[] { inserted });

            var selectedAfterUpdateAddresss = _tested.GetByPrimaryKey(connection, new EmployeeModelPrimaryKey()
            {
                BusinessEntityID = inserted.BusinessEntityID,
            });

            CollectionAssert.IsNotEmpty(selectedAfterUpdateAddresss);
            var selectedAfterUpdate = selectedAfterUpdateAddresss.Single();
            Assert.AreEqual(inserted.BusinessEntityID, selectedAfterUpdate.BusinessEntityID);
            Assert.AreEqual(inserted.NationalIDNumber, selectedAfterUpdate.NationalIDNumber);
            Assert.AreEqual(inserted.LoginID, selectedAfterUpdate.LoginID);
            Assert.AreEqual(inserted.OrganizationNode, selectedAfterUpdate.OrganizationNode);
            Assert.AreEqual(inserted.OrganizationLevel, selectedAfterUpdate.OrganizationLevel);
            Assert.AreEqual(inserted.JobTitle, selectedAfterUpdate.JobTitle);
            Assert.AreEqual(inserted.BirthDate, selectedAfterUpdate.BirthDate);
            Assert.AreEqual(inserted.MaritalStatus, selectedAfterUpdate.MaritalStatus);
            Assert.AreEqual(inserted.Gender, selectedAfterUpdate.Gender);
            Assert.AreEqual(inserted.HireDate, selectedAfterUpdate.HireDate);
            Assert.AreEqual(inserted.SalariedFlag, selectedAfterUpdate.SalariedFlag);
            Assert.AreEqual(inserted.VacationHours, selectedAfterUpdate.VacationHours);
            Assert.AreEqual(inserted.SickLeaveHours, selectedAfterUpdate.SickLeaveHours);
            Assert.AreEqual(inserted.CurrentFlag, selectedAfterUpdate.CurrentFlag);
            Assert.AreEqual(inserted.rowguid, selectedAfterUpdate.rowguid);
            Assert.AreEqual(inserted.ModifiedDate, selectedAfterUpdate.ModifiedDate);

            #endregion

            #region delete test
            _tested.Delete(connection, new[] { inserted });
            var selectedAfterDeleteAddresss = _tested.GetByPrimaryKey(connection, new EmployeeModelPrimaryKey()
            {
                BusinessEntityID = inserted.BusinessEntityID,
            });
            CollectionAssert.IsEmpty(selectedAfterDeleteAddresss);
            #endregion
            connection.Close();
        }