Search in sources :

Example 96 with QItemType

use of org.olat.modules.qpool.model.QItemType in project openolat by klemens.

the class QuestionDAOTest method shareItems_removeFromBusinessGroups_paranoid.

@Test
public void shareItems_removeFromBusinessGroups_paranoid() {
    // create a group to share 2 items
    QItemType mcType = qItemTypeDao.loadByType(QuestionType.MC.name());
    Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Share-item-" + UUID.randomUUID().toString());
    BusinessGroup group1 = businessGroupDao.createAndPersist(id, "gdao-b", "gdao-desc", -1, -1, false, false, false, false, false);
    BusinessGroup group2 = businessGroupDao.createAndPersist(id, "gdao-c", "gdao-desc", -1, -1, false, false, false, false, false);
    QuestionItem item1 = questionDao.createAndPersist(id, "Share-Item-Dup-1", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
    QuestionItem item2 = questionDao.createAndPersist(id, "Share-Item-Dup-1", QTI21Constants.QTI_21_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
    questionDao.share(item1, group1.getResource());
    questionDao.share(item1, group2.getResource());
    questionDao.share(item2, group1.getResource());
    questionDao.share(item2, group2.getResource());
    dbInstance.commit();
    // check them
    int numOfItems_1 = questionDao.countSharedItemByResource(group1.getResource(), null);
    Assert.assertEquals(2, numOfItems_1);
    int numOfItems_2 = questionDao.countSharedItemByResource(group2.getResource(), null);
    Assert.assertEquals(2, numOfItems_2);
    // remove
    questionDao.removeFromShare(Collections.<QuestionItemShort>singletonList(item2), group1.getResource());
    dbInstance.commitAndCloseSession();
    // check
    int numOfStayingItems_1 = questionDao.countSharedItemByResource(group1.getResource(), null);
    Assert.assertEquals(1, numOfStayingItems_1);
    int numOfStayingItems_2 = questionDao.countSharedItemByResource(group2.getResource(), null);
    Assert.assertEquals(2, numOfStayingItems_2);
    List<QuestionItemView> items_1 = qItemQueriesDao.getSharedItemByResource(id, group1.getResource(), null, null, 0, -1);
    Assert.assertEquals(1, items_1.size());
    Assert.assertEquals(item1.getKey(), items_1.get(0).getKey());
}
Also used : BusinessGroup(org.olat.group.BusinessGroup) Identity(org.olat.core.id.Identity) QuestionItemView(org.olat.modules.qpool.QuestionItemView) QuestionItem(org.olat.modules.qpool.QuestionItem) QItemType(org.olat.modules.qpool.model.QItemType) Test(org.junit.Test)

Example 97 with QItemType

use of org.olat.modules.qpool.model.QItemType in project openolat by klemens.

the class QuestionDAOTest method shareItems_businessGroups.

@Test
public void shareItems_businessGroups() {
    // create a group to share 2 items
    QItemType mcType = qItemTypeDao.loadByType(QuestionType.MC.name());
    Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Share-item-" + UUID.randomUUID().toString());
    BusinessGroup group = businessGroupDao.createAndPersist(id, "gdao", "gdao-desc", -1, -1, false, false, false, false, false);
    QuestionItem item = questionDao.createAndPersist(id, "Share-Item-Dup-1", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
    dbInstance.commit();
    // share them
    questionDao.share(item, group.getResource());
    questionDao.share(item, group.getResource());
    questionDao.share(item, group.getResource());
    // retrieve them
    List<BusinessGroup> shared = questionDao.getResourcesWithSharedItems(id);
    Assert.assertNotNull(shared);
    Assert.assertEquals(1, shared.size());
    Assert.assertTrue(shared.contains(group));
}
Also used : BusinessGroup(org.olat.group.BusinessGroup) Identity(org.olat.core.id.Identity) QuestionItem(org.olat.modules.qpool.QuestionItem) QItemType(org.olat.modules.qpool.model.QItemType) Test(org.junit.Test)

Example 98 with QItemType

use of org.olat.modules.qpool.model.QItemType in project openolat by klemens.

the class QuestionDAOTest method getNumOfQuestions.

@Test
public void getNumOfQuestions() {
    QItemType mcType = qItemTypeDao.loadByType(QuestionType.MC.name());
    QuestionItem item = questionDao.createAndPersist(null, "NGC 1277", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
    Assert.assertNotNull(item);
    dbInstance.commitAndCloseSession();
    int numOfQuestions = questionDao.getNumOfQuestions();
    Assert.assertTrue(numOfQuestions >= 1);
    dbInstance.commitAndCloseSession();
}
Also used : QuestionItem(org.olat.modules.qpool.QuestionItem) QItemType(org.olat.modules.qpool.model.QItemType) Test(org.junit.Test)

Example 99 with QItemType

use of org.olat.modules.qpool.model.QItemType in project openolat by klemens.

the class QuestionDAOTest method shareItems_removeFromBusinessGroups.

@Test
public void shareItems_removeFromBusinessGroups() {
    // create a group to share 2 items
    QItemType mcType = qItemTypeDao.loadByType(QuestionType.MC.name());
    Identity id = JunitTestHelper.createAndPersistIdentityAsUser("Share-item-" + UUID.randomUUID().toString());
    BusinessGroup group = businessGroupDao.createAndPersist(id, "gdao", "gdao-desc", -1, -1, false, false, false, false, false);
    QuestionItem item = questionDao.createAndPersist(id, "Share-Item-Dup-1", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, mcType);
    questionDao.share(item, group.getResource());
    dbInstance.commit();
    // check them
    List<QuestionItemView> shared = qItemQueriesDao.getSharedItemByResource(id, group.getResource(), null, null, 0, -1);
    Assert.assertNotNull(shared);
    Assert.assertEquals(1, shared.size());
    // remove
    questionDao.removeFromShare(Collections.<QuestionItemShort>singletonList(item), group.getResource());
    dbInstance.commitAndCloseSession();
    // check
    int numOfStayingItems = questionDao.countSharedItemByResource(group.getResource(), null);
    Assert.assertEquals(0, numOfStayingItems);
}
Also used : BusinessGroup(org.olat.group.BusinessGroup) Identity(org.olat.core.id.Identity) QuestionItemView(org.olat.modules.qpool.QuestionItemView) QuestionItem(org.olat.modules.qpool.QuestionItem) QItemType(org.olat.modules.qpool.model.QItemType) Test(org.junit.Test)

Example 100 with QItemType

use of org.olat.modules.qpool.model.QItemType in project openolat by klemens.

the class QuestionDAOTest method deleteQuestion.

@Test
public void deleteQuestion() {
    QItemType fibType = qItemTypeDao.loadByType(QuestionType.FIB.name());
    QuestionItem item = questionDao.createAndPersist(null, "To delete 1", QTIConstants.QTI_12_FORMAT, Locale.ENGLISH.getLanguage(), null, null, null, fibType);
    dbInstance.commitAndCloseSession();
    List<QuestionItem> itemsToDelete = Collections.singletonList(item);
    questionDao.delete(itemsToDelete);
    dbInstance.commitAndCloseSession();
    QuestionItem deletedItem = questionDao.loadById(item.getKey());
    Assert.assertNull(deletedItem);
}
Also used : QuestionItem(org.olat.modules.qpool.QuestionItem) QItemType(org.olat.modules.qpool.model.QItemType) Test(org.junit.Test)

Aggregations

QItemType (org.olat.modules.qpool.model.QItemType)118 Test (org.junit.Test)94 QuestionItem (org.olat.modules.qpool.QuestionItem)82 Identity (org.olat.core.id.Identity)58 BusinessGroup (org.olat.group.BusinessGroup)22 QuestionItemView (org.olat.modules.qpool.QuestionItemView)18 Pool (org.olat.modules.qpool.Pool)12 QuestionItem2Pool (org.olat.modules.qpool.QuestionItem2Pool)12 QuestionItemCollection (org.olat.modules.qpool.QuestionItemCollection)12 QuestionItemImpl (org.olat.modules.qpool.model.QuestionItemImpl)10 URI (java.net.URI)8 ArrayList (java.util.ArrayList)8 HttpResponse (org.apache.http.HttpResponse)8 QuestionItemShort (org.olat.modules.qpool.QuestionItemShort)8 QEducationalContext (org.olat.modules.qpool.model.QEducationalContext)8 SearchQuestionItemParams (org.olat.modules.qpool.model.SearchQuestionItemParams)8 QuestionItemFull (org.olat.modules.qpool.QuestionItemFull)6 QuestionType (org.olat.modules.qpool.QuestionType)6 TaxonomyLevel (org.olat.modules.taxonomy.TaxonomyLevel)6 InputStream (java.io.InputStream)4