public void DataService_AddHeirarchicalTerm_Adds_First_Record_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addHeirarchicalTerm);

            Term term = new Term(4)
                            {
                                Name = "Test Term",
                                ParentTermId = null /*No Parent*/,
                                Weight = 0,
                                Description = "Test Term"
                            };

            DataService ds = new DataService();

            //Act
            int newTermId = ds.AddHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount + 1);
            DatabaseAssert.RecordLastAddedIdEquals(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                                   "TermID", newTermId);

            //Assert that new term is correct as first record in Vocabulary
            TestTerm(newTermId, 1, 2);
        }
Ejemplo n.º 2
0
		/// <summary>
		/// Gets the data service.
		/// </summary>
		/// <returns>data service instance from ComponentFactory.</returns>
        public static IDataService GetDataService()
        {
            var ds = ComponentFactory.GetComponent<IDataService>();

            if (ds == null)
            {
                ds = new DataService();
                ComponentFactory.RegisterComponentInstance<IDataService>(ds);
            }
            return ds;
        }
        public void DataService_AddSimpleTerm_Returns_Correct_Id_On_Valid_Term()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addSimpleTerm);

            Term term = ContentTestHelper.CreateValidSimpleTerm(Constants.VOCABULARY_ValidVocabularyId);

            DataService ds = new DataService();

            //Act
            int termItemId = ds.AddSimpleTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordLastAddedIdEquals(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                                   "TermID", termItemId);
        }
        public void DataService_AddSimpleTerm_Adds_Record_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addSimpleTerm);

            Term term = ContentTestHelper.CreateValidSimpleTerm(Constants.VOCABULARY_ValidVocabularyId);

            DataService ds = new DataService();

            //Act
            int termItemId = ds.AddSimpleTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount + 1);
        }
        public void DataService_AddContentType_Adds_Record_On_Valid_ContentType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addContentType);

            ContentType contentType = new ContentType();
            contentType.ContentType = Constants.CONTENTTYPE_ValidContentType;

            DataService ds = new DataService();

            //Act
            int contentTypeItemId = ds.AddContentType(contentType);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString,
                                              ContentDataTestHelper.ContentTypesTableName, rowCount + 1);
        }
        public void DataService_AddTermToContent_Adds_Record_If_Valid()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTagsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addTermToContent);

            ContentItem content = ContentTestHelper.CreateValidContentItem();
            Term term = ContentTestHelper.CreateValidSimpleTerm(Constants.VOCABULARY_ValidVocabularyId);

            DataService ds = new DataService();

            //Act
            ds.AddTermToContent(term, content);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString,
                                              ContentDataTestHelper.ContentTagsTableName, rowCount + 1);
        }
        public void DataService_DeleteSimpleTerm_Delete_Record_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteTerm);

            Term term = ContentTestHelper.CreateValidSimpleTerm(Constants.VOCABULARY_ValidVocabularyId);
            term.TermId = Constants.TERM_DeleteTermId;

            DataService ds = new DataService();

            //Act
            ds.DeleteSimpleTerm(term);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.TermsTableName, rowCount - 1);
                DatabaseAssert.RecordDoesNotExist(connection, ContentDataTestHelper.TermsTableName, keyField,
                                                  Constants.TERM_DeleteTermId.ToString());
            }
        }
        public void DataService_AddHeirarchicalTerm_Does_Not_Modify_Terms_From_Other_Vocabularies()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addHeirarchicalTerm);

            Term term = new Term(4)
                            {
                                Name = "Test Term",
                                ParentTermId = null /*No Parent*/,
                                Weight = 0,
                                Description = "Test Term"
                            };

            DataService ds = new DataService();

            //Act
            int newTermId = ds.AddHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert that electronics terms are untouched
            //Televisions, Id = 1, Left=12, Right=17
            TestTerm(1, 12, 17);
            //Flash, Id = 9, Left=8, Right=9
            TestTerm(9, 8, 9);
            //Electronics, Id = 12, Left=1, Right=18
            TestTerm(12, 1, 18);
        }
        public void DataService_GetTerm_Returns_Empty_Reader_On_InValid_Id()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, getTerm);

            DataService ds = new DataService();

            //Act
            IDataReader dataReader = ds.GetTerm(Constants.TERM_InValidTermId);

            //Assert
            DatabaseAssert.ReaderColumnCountIsEqual(dataReader, columnCount);
            DatabaseAssert.ReaderRowCountIsEqual(dataReader, 0);

            dataReader.Close();
        }
        public void DataService_UpdateHeirarchicalTerm_Updates_Record_But_Does_Not_Modify_Other_Terms_If_ParentID_Does_Not_Change()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, updateHeirarchicalTerm);

            Term term = new Term(4)
                            {
                                TermId = 17,
                                Name = "Test Update",
                                ParentTermId = null,
                                Weight = 0,
                                Description = "Updated"
                            };

            DataService ds = new DataService();

            //Act
            ds.UpdateHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount);

            //Assert that electronics terms are untouched
            //Televisions, Id = 1, Left=12, Right=17
            TestTerm(1, 12, 17);
            //Flash, Id = 9, Left=8, Right=9
            TestTerm(9, 8, 9);
            //Electronics, Id = 12, Left=1, Right=18
            TestTerm(12, 1, 18);
        }
        public void DataService_DeleteContentType_Should_Do_Nothing_On_InValid_ContentType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteContentType);

            ContentType contentType = ContentTestHelper.CreateValidContentType();
            contentType.ContentTypeId = Constants.CONTENTTYPE_InValidContentTypeId;

            DataService ds = new DataService();

            //Act
            ds.DeleteContentType(contentType);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString,
                                              ContentDataTestHelper.ContentTypesTableName, rowCount);
        }
        public void DataService_UpdateContentType_Updates_Record_On_Valid_ContentType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, upateContentType);

            ContentType contentType = ContentTestHelper.CreateValidContentType();
            contentType.ContentTypeId = Constants.CONTENTTYPE_UpdateContentTypeId;
            contentType.ContentType = Constants.CONTENTTYPE_UpdateContentType;

            DataService ds = new DataService();

            //Act
            ds.UpdateContentType(contentType);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.ContentTypesTableName, rowCount);

                //Check Values are updated
                IDataReader dataReader = DataUtil.GetRecordsByField(connection,
                                                                    ContentDataTestHelper.ContentTypesTableName,
                                                                    keyField,
                                                                    Constants.CONTENTTYPE_UpdateContentTypeId.ToString());
                while (dataReader.Read())
                {
                    DatabaseAssert.ReaderColumnIsEqual(dataReader, "ContentType",
                                                       Constants.CONTENTTYPE_UpdateContentType);
                }

                dataReader.Close();
            }
        }
        public void DataService_DeleteHeirarchicalTerm_Does_Not_Modify_Terms_From_Other_Vocabularies()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteHeirarchicalTerm);

            Term term = new Term(3)
                            {
                                TermId = 16,
                                Name = "Test Delete",
                                ParentTermId = null,
                                Weight = 0,
                                Description = "Test Delete"
                            };

            DataService ds = new DataService();

            //Act
            ds.DeleteHeirarchicalTerm(term);

            //Assert that electronics terms are untouched
            //Televisions, Id = 1, Left=12, Right=17
            TestTerm(1, 12, 17);
            //Flash, Id = 9, Left=8, Right=9
            TestTerm(9, 8, 9);
            //Electronics, Id = 12, Left=1, Right=18
            TestTerm(12, 1, 18);
        }
        public void DataService_AddScopeType_Returns_Correct_Id_On_Valid_ScopeType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ScopeTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addScopeType);

            ScopeType scopeType = new ScopeType();
            scopeType.ScopeType = Constants.SCOPETYPE_ValidScopeType;

            DataService ds = new DataService();

            //Act
            int scopeTypeItemId = ds.AddScopeType(scopeType);

            //Assert
            DatabaseAssert.RecordLastAddedIdEquals(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ScopeTypesTableName, "ScopeTypeID",
                                                   scopeTypeItemId);
        }
        public void DataService_AddHeirarchicalTerm_Throws_On_InValid_VocabularyId()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addHeirarchicalTerm);

            Term term = ContentTestHelper.CreateValidHeirarchicalTerm(Constants.VOCABULARY_InValidVocabularyId,
                                                                      Constants.TERM_ValidParentTermId);

            DataService ds = new DataService();

            //Act/Assert
            Assert.Throws<SqlException>(() => ds.AddHeirarchicalTerm(term, Constants.USER_ValidId));
        }
        public void DataService_DeleteHeirarchicalTerm_Delete_Record_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteHeirarchicalTerm);

            int termId = 7;
            Term term = new Term(2)
                            {
                                TermId = 7,
                                Name = "CD Players",
                                ParentTermId = 2 /*Portable Electronics*/,
                                Weight = 0,
                                Description = "CD Players"
                            };

            DataService ds = new DataService();

            //Act
            ds.DeleteHeirarchicalTerm(term);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount - 1);
            DatabaseAssert.RecordDoesNotExist(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              keyField, termId.ToString());

            //Assert that existing terms are correct
            //Televisions, Id = 1, Left=12, Right=17 - should be Left=10, Right=15
            TestTerm(1, 10, 15);
            //2-Way, Id = 8, Left=3, Right=4 - should be Left=3, Right=4
            TestTerm(8, 3, 4);
            //Electronics, Id = 12, Left=1, Right=18 - should be Left=1, Right=16
            TestTerm(12, 1, 16);
        }
        public void DataService_AddHeirarchicalTerm_Inserts_Record_In_Alpha_Order_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addHeirarchicalTerm);

            Term term = new Term(2)
                            {
                                Name = "Plasma",
                                ParentTermId = 1 /*Televisions*/,
                                Weight = 0,
                                Description = "Plasma"
                            };

            DataService ds = new DataService();

            //Act
            int newTermId = ds.AddHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount + 1);
            DatabaseAssert.RecordLastAddedIdEquals(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                                   "TermID", newTermId);

            //Assert that new term is correct as middle child of televisions
            TestTerm(newTermId, 15, 16);

            //Assert that existing terms are correct
            //Televisions, Id = 1, Left=12, Right=17 - should be Left=12, Right=19
            TestTerm(1, 12, 19);
            //Flash, Id = 9, Left=8, Right=9 - should be Left=8, Right=9
            TestTerm(9, 8, 9);
            //Electronics, Id = 12, Left=1, Right=18 - should be Left=1, Right=20
            TestTerm(12, 1, 20);
        }
        public void DataService_AddHeirarchicalTerm_Inserts_Record_As_First_Child_On_Valid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addHeirarchicalTerm);

            Term term = new Term(2)
                            {
                                Name = "Game Console",
                                ParentTermId = 12 /*Electronics*/,
                                Weight = 0,
                                Description = "Game Consoles like X-Box 360"
                            };

            DataService ds = new DataService();

            //Act
            int newTermId = ds.AddHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount + 1);
            DatabaseAssert.RecordLastAddedIdEquals(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                                   "TermID", newTermId);

            //Assert that new term is correct as first child of electronics
            TestTerm(newTermId, 2, 3);

            //Assert that existing terms are correct
            //Televisions, Id = 1, Left=12, Right=17 - should be Left=14, Right=19
            TestTerm(1, 14, 19);
            //Flash, Id = 9, Left=8, Right=9 - should be Left=10, Right=11
            TestTerm(9, 10, 11);
            //Electronics, Id = 12, Left=1, Right=18 - should be Left=1, Right=20
            TestTerm(12, 1, 20);
        }
        public void DataService_GetTermsByVocabulary_Returns_Reader_Of_The_Terms_On_Valid_Id()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, getTermsByVocabulary);

            DataService ds = new DataService();

            //Act
            IDataReader dataReader = ds.GetTermsByVocabulary(Constants.TERM_ValidVocabularyId);

            //Assert
            DatabaseAssert.ReaderColumnCountIsEqual(dataReader, columnCount);
            DatabaseAssert.ReaderRowCountIsEqual(dataReader, Constants.TERM_ValidGetTermsByVocabularyCount);

            dataReader.Close();
        }
        public void DataService_RemoveTermsFromContent_Removes_Does_Nothing_If_ContentItem_Has_No_Terms()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTagsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, removeTermsFromContent);

            ContentItem content = ContentTestHelper.CreateValidContentItem();
            content.ContentItemId = Constants.TAG_NoContentContentId;

            DataService ds = new DataService();

            //Act
            ds.RemoveTermsFromContent(content);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString,
                                              ContentDataTestHelper.ContentTagsTableName, rowCount);
        }
        public void DataService_AddTermToContent_Throws_If_Duplicate()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTagsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, addTermToContent);

            ContentItem content = ContentTestHelper.CreateValidContentItem();
            content.ContentItemId = Constants.TAG_DuplicateContentItemId;
            Term term = ContentTestHelper.CreateValidSimpleTerm(Constants.VOCABULARY_ValidVocabularyId);
            term.TermId = Constants.TAG_DuplicateTermId;

            DataService ds = new DataService();

            //Act/Assert
            Assert.Throws<SqlException>(() => ds.AddTermToContent(term, content));
        }
        public void DataService_UpdateScopeType_Does_Nothing_On_InValid_ScopeType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ScopeTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, upateScopeType);

            ScopeType scopeType = ContentTestHelper.CreateValidScopeType();
            scopeType.ScopeTypeId = Constants.SCOPETYPE_InValidScopeTypeId;
            scopeType.ScopeType = Constants.SCOPETYPE_UpdateScopeType;

            DataService ds = new DataService();

            //Act
            ds.UpdateScopeType(scopeType);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.ScopeTypesTableName, rowCount);

                //Check that values have not changed
                IDataReader dataReader = DataUtil.GetRecordsByField(connection,
                                                                    ContentDataTestHelper.ScopeTypesTableName, keyField,
                                                                    Constants.SCOPETYPE_UpdateScopeTypeId.ToString());
                while (dataReader.Read())
                {
                    DatabaseAssert.ReaderColumnIsEqual(dataReader, "ScopeType",
                                                       Constants.SCOPETYPE_OriginalUpdateScopeType);
                }

                dataReader.Close();
            }
        }
        public void DataService_UpdateHeirarchicalTerm_Does_Nothing_On_InValid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, updateHeirarchicalTerm);

            Term term = ContentTestHelper.CreateValidHeirarchicalTerm(Constants.VOCABULARY_ValidVocabularyId,
                                                                      Constants.TERM_ValidParentTermId);
            term.TermId = Constants.TERM_InValidTermId;
            term.Name = Constants.TERM_UpdateName;
            term.Weight = Constants.TERM_UpdateWeight;

            DataService ds = new DataService();

            //Act
            ds.UpdateHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.TermsTableName, rowCount);

                //Check that values have not changed
                IDataReader dataReader = DataUtil.GetRecordsByField(connection, ContentDataTestHelper.TermsTableName,
                                                                    keyField, Constants.TERM_UpdateTermId.ToString());
                while (dataReader.Read())
                {
                    DatabaseAssert.ReaderColumnIsEqual(dataReader, "Name", Constants.TERM_OriginalUpdateName);
                }

                dataReader.Close();
            }
        }
        public void DataService_DeleteContentType_Delete_Record_On_Valid_ContentType()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteContentType);

            ContentType contentType = ContentTestHelper.CreateValidContentType();
            contentType.ContentTypeId = Constants.CONTENTTYPE_ValidContentTypeId;

            DataService ds = new DataService();

            //Act
            ds.DeleteContentType(contentType);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.ContentTypesTableName, rowCount - 1);
                DatabaseAssert.RecordDoesNotExist(connection, ContentDataTestHelper.ContentTypesTableName, keyField,
                                                  Constants.CONTENTTYPE_ValidContentTypeId.ToString());
            }
        }
        public void DataService_UpdateHeirarchicalTerm_Throws_On_Invalid_VocabularyId()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, updateHeirarchicalTerm);

            Term term = ContentTestHelper.CreateValidHeirarchicalTerm(Constants.VOCABULARY_InValidVocabularyId,
                                                                      Constants.TERM_ValidParentTermId);
            term.TermId = Constants.TERM_UpdateTermId;
            term.Name = Constants.TERM_UpdateName;
            term.Weight = Constants.TERM_UpdateWeight;

            DataService ds = new DataService();

            //Act/Assert
            Assert.Throws<SqlException>(() => ds.UpdateHeirarchicalTerm(term, Constants.USER_ValidId));
        }
        public void DataService_GetContentTypes_Returns_Reader_Of_The_ContentTypes()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString,
                                                   ContentDataTestHelper.ContentTypesTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, getContentTypes);

            DataService ds = new DataService();

            //Act
            IDataReader dataReader = ds.GetContentTypes();

            //Assert
            DatabaseAssert.ReaderRowCountIsEqual(dataReader, Constants.CONTENTTYPE_ValidContentTypeCount);
        }
        public void DataService_UpdateHeirarchicalTerm_Updates_Records_On_Change_Parent_To_Sibling_Of_Parent()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, updateHeirarchicalTerm);

            Term term = new Term(2)
                            {
                                TermId = 6,
                                Name = "MP3 Players",
                                ParentTermId = 12 /*Electronics*/,
                                Weight = 0,
                                Description = "MP3 Players"
                            };

            DataService ds = new DataService();

            //Act
            ds.UpdateHeirarchicalTerm(term, Constants.USER_ValidId);

            //Assert
            DatabaseAssert.RecordCountIsEqual(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName,
                                              rowCount);

            //Assert that existing terms are correct
            //Televisions, Id = 1, Left=12, Right=17 - should be Left=12, Right=17
            TestTerm(1, 12, 17);
            //2-Way, Id = 8, Left=3, Right=4 - should be Left=7, Right=8
            TestTerm(8, 7, 8);
            //Electronics, Id = 12, Left=1, Right=18 - should be Left=1, Right=18
            TestTerm(12, 1, 18);
            //MP3 Players, Id = 6, Left=7, Right=10 - should be Left=2, Right=5
            TestTerm(6, 2, 5);
            //Flash Players, Id = 9, Left=8, Right=9 - should be Left=3, Right=4
            TestTerm(9, 3, 4);
        }
        public void DataService_DeleteHeirarchicalTerm_Should_Do_Nothing_On_InValid_Term()
        {
            //Arrange
            int rowCount = DataUtil.GetRecordCount(DataTestHelper.ConnectionString, ContentDataTestHelper.TermsTableName);
            DataUtil.AddDatabaseObject(virtualScriptFilePath, deleteHeirarchicalTerm);

            Term term = ContentTestHelper.CreateValidHeirarchicalTerm(Constants.VOCABULARY_ValidVocabularyId,
                                                                      Constants.TERM_ValidParentTermId);
            term.TermId = Constants.TERM_InValidTermId;

            DataService ds = new DataService();

            //Act
            ds.DeleteHeirarchicalTerm(term);

            //Assert
            using (SqlConnection connection = new SqlConnection(DataTestHelper.ConnectionString))
            {
                connection.Open();
                DatabaseAssert.RecordCountIsEqual(connection, ContentDataTestHelper.TermsTableName, rowCount);
            }
        }
        public void DataService_GetTerm_Returns_Reader_Of_The_Term_On_Valid_Id()
        {
            //Arrange
            DataUtil.AddDatabaseObject(virtualScriptFilePath, getTerm);

            DataService ds = new DataService();

            //Act
            IDataReader dataReader = ds.GetTerm(Constants.TERM_ValidTermId);

            //Assert
            int records = 0;
            while (dataReader.Read())
            {
                DatabaseAssert.ReaderColumnIsEqual(dataReader, keyField, Constants.TERM_ValidTermId);
                records += 1;
            }

            dataReader.Close();

            //Assert that the count is correct
            Assert.AreEqual(1, records);
        }