001/* 002 * Copyright 2005-2014 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017package org.kuali.rice.krms.test; 018 019import org.junit.Before; 020import org.junit.Test; 021import org.kuali.rice.krms.api.repository.language.NaturalLanguageTemplate; 022import org.springframework.dao.DataAccessException; 023 024import java.util.List; 025 026import static junit.framework.Assert.assertNotNull; 027import static junit.framework.Assert.assertNull; 028import static org.junit.Assert.assertEquals; 029import static org.junit.Assert.fail; 030 031/** 032 * RuleManagementNaturalLanguageTemplateTest is to test the methods of 033 * ruleManagementServiceImpl relating to NaturalLanguageTemplates 034 * 035 * Each test focuses on one of the methods. 036 */ 037public class RuleManagementNaturalLanguageTemplateTest extends RuleManagementBaseTest { 038 @Override 039 @Before 040 public void setClassDiscriminator() { 041 // set a unique discriminator for test objects of this class 042 CLASS_DISCRIMINATOR = "RMLTT"; 043 } 044 045 /** 046 * Test testCreateNaturalLanguageTemplate() 047 * 048 * This test focuses specifically on the RuleManagementServiceImpl .createNaturalLanguageTemplate(NaturalLanguageTemplate) method 049 */ 050 @Test 051 public void testCreateNaturalLanguageTemplate() { 052 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 053 RuleManagementBaseTestObjectNames t0 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t0"); 054 055 // validate that the NaturalLanguageTemplate being build, does not already exist 056 assertNull(ruleManagementService.getNaturalLanguageTemplate("en-reqActive")); 057 058 // build a NaturalLanguageTemplate for testing 059 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t0.namespaceName, "en", "reqActive", 060 "Must not be inActive", true); 061 062 // validate the resulting object 063 template = ruleManagementService.getNaturalLanguageTemplate("en-reqActive"); 064 assertNotNull(ruleManagementService.getNaturalLanguageTemplate("en-reqActive")); 065 assertEquals("Unexpected language code found", "en", template.getLanguageCode()); 066 assertEquals("Unexpected template found", "Must not be inActive", template.getTemplate()); 067 assertEquals("Unexpected TypeId value", krmsTypeRepository.getTypeByName(t0.namespaceName, "reqActive").getId(), template.getTypeId()); 068 assertEquals("Unexpected Active value", true, template.isActive()); 069 070 // try to create a NaturalLanguageTemplate with null languageCode 071 try { 072 NaturalLanguageTemplate.Builder.create(null,template.getNaturalLanguageUsageId(),"Ky objekt nuk duhet të jetë joaktive",template.getTypeId()); 073 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 074 } catch (IllegalArgumentException e ) { 075 // throws IllegalArgumentException: languageCode is null or blank 076 } 077 078 // try to create a NaturalLanguageTemplate with blank languageCode 079 try { 080 NaturalLanguageTemplate.Builder.create(" ",template.getNaturalLanguageUsageId(),"Objektu hau ezin da ez-aktiboak",template.getTypeId()); 081 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 082 } catch (IllegalArgumentException e ) { 083 // throws IllegalArgumentException: languageCode is null or blank 084 } 085 086 // try to create a NaturalLanguageTemplate with null naturalLanguageUsageId 087 try { 088 NaturalLanguageTemplate.Builder.create("it",null,"Questo oggetto non deve essere inattivo",template.getTypeId()); 089 fail("Should have thrown IllegalArgumentException: naturalLanguageUsageId is null or blank"); 090 } catch (IllegalArgumentException e ) { 091 // throws IllegalArgumentException: naturalLanguageUsageId is null or blank 092 } 093 094 // try to create a NaturalLanguageTemplate with blank naturalLanguageUsageId 095 try { 096 NaturalLanguageTemplate.Builder.create("ja"," ","このオブジェクトは、非アクティブにすることはできません",template.getTypeId()); 097 fail("Should have thrown IllegalArgumentException: naturalLanguageUsageId is null or blank"); 098 } catch (IllegalArgumentException e ) { 099 // throws IllegalArgumentException: naturalLanguageUsageId is null or blank 100 } 101 102 // try to create a NaturalLanguageTemplate with null template 103 try { 104 NaturalLanguageTemplate.Builder.create("az",template.getNaturalLanguageUsageId(),null,template.getTypeId()); 105 fail("Should have thrown IllegalArgumentException: template is null or blank"); 106 } catch (IllegalArgumentException e ) { 107 // throws IllegalArgumentException: template is null or blank 108 } 109 110 // try to create a NaturalLanguageTemplate with blank template 111 try { 112 NaturalLanguageTemplate.Builder.create("bg",template.getNaturalLanguageUsageId()," ",template.getTypeId()); 113 fail("Should have thrown IllegalArgumentException: template is null or blank"); 114 } catch (IllegalArgumentException e ) { 115 // throws IllegalArgumentException: template is null or blank 116 } 117 118 // try to create a NaturalLanguageTemplate with null typeId 119 try { 120 NaturalLanguageTemplate.Builder.create("hr",template.getNaturalLanguageUsageId(),"Ovaj objekt ne smije biti neaktivna",null); 121 fail("Should have thrown IllegalArgumentException: typeId is null or blank"); 122 } catch (IllegalArgumentException e ) { 123 // throws IllegalArgumentException: typeId is null or blank 124 } 125 126 // try to create a NaturalLanguageTemplate with blank typeId 127 try { 128 NaturalLanguageTemplate.Builder.create("cs",template.getNaturalLanguageUsageId(),"Tento objekt nesmí být neaktivní"," "); 129 fail("Should have thrown IllegalArgumentException: typeId is null or blank"); 130 } catch (IllegalArgumentException e ) { 131 // throws IllegalArgumentException: typeId is null or blank 132 } 133 134 // try to create a NaturalLanguageTemplate with invalid typeId 135 NaturalLanguageTemplate.Builder naturalLanguageTemplateBuilder = NaturalLanguageTemplate.Builder.create("da",template.getNaturalLanguageUsageId(),"Dette formål må ikke være inaktiv","badId"); 136 naturalLanguageTemplateBuilder.setId("da" + "-" + "reqActive"); 137 try { 138 ruleManagementService.createNaturalLanguageTemplate(naturalLanguageTemplateBuilder.build()); 139 fail("Should have thrown PersistenceException"); 140 } catch (DataAccessException e) { 141 // Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot 142 // add or update a child row: a foreign key constraint fails (`rice24test`.`krms_nl_tmpl_t`, CONSTRAINT 143 // `KRMS_TYP_T` FOREIGN KEY (`TYP_ID`) REFERENCES `krms_typ_t` (`TYP_ID`)) 144 } 145 } 146 147 /** 148 * Test testGetNaturalLanguageTemplate() 149 * 150 * This test focuses specifically on the RuleManagementServiceImpl .getNaturalLanguageTemplate("naturalLanguageTemplateId") method 151 */ 152 @Test 153 public void testGetNaturalLanguageTemplate() { 154 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 155 RuleManagementBaseTestObjectNames t1 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t1"); 156 157 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t1.namespaceName, "sw", "reqActive", 158 "Detta ändamål får inte vara inaktiv", true); 159 assertNotNull(ruleManagementService.getNaturalLanguageTemplate("sw-reqActive")); 160 assertEquals("Unexpected language code found", "sw", template.getLanguageCode()); 161 // try to getNaturalLanguageTemplate with null value 162 try { 163 ruleManagementService.getNaturalLanguageTemplate(null); 164 fail("Should have thrown IllegalArgumentException: naturalLanguageTemplateId was null"); 165 } catch (IllegalArgumentException e) { 166 //throws g.IllegalArgumentException: naturalLanguageTemplateId was null 167 } 168 169 // try to getNaturalLanguageTemplate with blank value 170 try { 171 ruleManagementService.getNaturalLanguageTemplate(" "); 172 fail("Should have thrown IllegalArgumentException: naturalLanguageTemplateId was blank"); 173 } catch (IllegalArgumentException e) { 174 //throws IllegalArgumentException: naturalLanguageTemplateId was blank 175 } 176 177 assertNull(ruleManagementService.getNaturalLanguageTemplate("badId")); 178 } 179 180 /** 181 * Test testUpdateNaturalLanguageTemplate() 182 * 183 * This test focuses specifically on the RuleManagementServiceImpl .updateNaturalLanguageTemplate(NaturalLanguageTemplate) method 184 */ 185 @Test 186 public void testUpdateNaturalLanguageTemplate() { 187 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 188 RuleManagementBaseTestObjectNames t2 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t2"); 189 190 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t2.namespaceName, "pl", "reqActive", 191 "Isthay Objectway ustmay otnay ebay inActiveway", true); 192 NaturalLanguageTemplate.Builder naturalLanguageTemplateBuilder = NaturalLanguageTemplate.Builder.create( 193 ruleManagementService.getNaturalLanguageTemplate("pl-reqActive")); 194 // update the template value (pl is the lang_cd for polish not pig-latin so update template) 195 naturalLanguageTemplateBuilder.setTemplate("Ten obiekt nie moze byc nieaktywne"); 196 naturalLanguageTemplateBuilder.setActive(true); 197 ruleManagementService.updateNaturalLanguageTemplate(naturalLanguageTemplateBuilder.build()); 198 199 assertEquals("Unexpected template value found", "Ten obiekt nie moze byc nieaktywne", ruleManagementService.getNaturalLanguageTemplate("pl-reqActive").getTemplate()); 200 assertEquals("Unexpected isActive value found", true, ruleManagementService.getNaturalLanguageTemplate("pl-reqActive").isActive()); 201 } 202 203 /** 204 * Test testDeleteNaturalLanguageTemplate() 205 * 206 * This test focuses specifically on the RuleManagementServiceImpl .deleteNaturalLanguageTemplate("naturalLanguageTemplateId") method 207 */ 208 @Test 209 public void testDeleteNaturalLanguageTemplate() { 210 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 211 RuleManagementBaseTestObjectNames t3 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t3"); 212 213 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t3.namespaceName, "pt", "reqActive", 214 "Este objeto nao deve ser inativo", true); 215 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("pt-reqActive")); 216 217 ruleManagementService.deleteNaturalLanguageTemplate("pt-reqActive"); 218 219 // verify it was deleted 220 assertNull("Should not have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("pt-reqActive")); 221 222 // test delete using null 223 try { 224 ruleManagementService.deleteNaturalLanguageTemplate(null); 225 fail("Should have thrown IllegalArgumentException: naturalLanguageTemplateId was null"); 226 } catch (IllegalArgumentException e) { 227 // throws IllegalArgumentException: naturalLanguageTemplateId was null 228 } 229 230 // test delete using blank 231 try { 232 ruleManagementService.deleteNaturalLanguageTemplate(" "); 233 fail("Should have thrown IllegalArgumentException: naturalLanguageTemplateId was blank"); 234 } catch (IllegalArgumentException e) { 235 // throws IllegalArgumentException: naturalLanguageTemplateId was blank 236 } 237 238 // test delete using bad value 239 try { 240 ruleManagementService.deleteNaturalLanguageTemplate("badValue"); 241 fail("Should have thrown IllegalStateException: the NaturalLanguageTemplate to delete does not exists: badValue"); 242 } catch (IllegalStateException e) { 243 // throws IllegalStateException: the NaturalLanguageTemplate to delete does not exists: badValue 244 } 245 } 246 247 248 /** 249 * Test testFindNaturalLanguageTemplatesByLanguageCode() 250 * 251 * This test focuses specifically on the RuleManagementServiceImpl .findNaturalLanguageTemplatesByLanguageCode("languageCode") method 252 */ 253 @Test 254 public void testFindNaturalLanguageTemplatesByLanguageCode() { 255 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 256 RuleManagementBaseTestObjectNames t4 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t4"); 257 258 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t4.namespaceName, "ro", "reqActive", 259 "Acest obiect nu trebuie sa fie inactiv", true); 260 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("ro-reqActive")); 261 262 List<NaturalLanguageTemplate> nlTemplates = ruleManagementService.findNaturalLanguageTemplatesByLanguageCode("ro"); 263 assertEquals("Unexpected number of templates returned ",1,nlTemplates.size()); 264 assertEquals("Unexpected template id returned","ro-reqActive",nlTemplates.get(0).getId()); 265 266 // test find with null LanguageCode 267 try { 268 ruleManagementService.findNaturalLanguageTemplatesByLanguageCode(null); 269 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 270 } catch (IllegalArgumentException e) { 271 // throws IllegalArgumentException: languageCode is null or blank 272 } 273 274 // test find with blank LanguageCode 275 try { 276 ruleManagementService.findNaturalLanguageTemplatesByLanguageCode(" "); 277 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 278 } catch (IllegalArgumentException e) { 279 // throws IllegalArgumentException: languageCode is null or blank 280 } 281 282 // test find with non-existing LanguageCode 283 assertEquals("Unexpected number of templates returned ",0, 284 ruleManagementService.findNaturalLanguageTemplatesByLanguageCode("badValue").size()); 285 } 286 287 288 /** 289 * Test testFindNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId() 290 * 291 * This test focuses specifically on the RuleManagementServiceImpl 292 * .findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId(String languageCode, String typeId, String naturalLanguageUsageId) method 293 */ 294 @Test 295 public void testFindNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId() { 296 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 297 RuleManagementBaseTestObjectNames t5 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t5"); 298 299 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t5.namespaceName, "sk", "reqActive", 300 "Tento objekt nesmie byt neaktívne", true); 301 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("sk-reqActive")); 302 303 // test find 304 template = ruleManagementService.findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId( 305 template.getLanguageCode(),template.getTypeId(),template.getNaturalLanguageUsageId()); 306 307 // validate the returned object 308 assertEquals("Unexpected template id returned","sk-reqActive",template.getId()); 309 assertEquals("Unexpected language code found", "sk", template.getLanguageCode()); 310 assertEquals("Unexpected template found", "Tento objekt nesmie byt neaktívne", template.getTemplate()); 311 assertEquals("Unexpected TypeId value", krmsTypeRepository.getTypeByName(t5.namespaceName, "reqActive").getId(), template.getTypeId()); 312 assertEquals("Unexpected Active value", true, template.isActive()); 313 314 // test find with null language code 315 try { 316 ruleManagementService.findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId( 317 null,template.getTypeId(),template.getNaturalLanguageUsageId()); 318 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 319 } catch (IllegalArgumentException e) { 320 // throws IllegalArgumentException: languageCode is null or blank 321 } 322 323 // test find with null TypeId 324 ruleManagementService.findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId( 325 template.getLanguageCode(),null,template.getNaturalLanguageUsageId()); 326 327 // test find with null NaturalLanguageUsageId 328 ruleManagementService.findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId( 329 template.getLanguageCode(),template.getTypeId(),null); 330 331 // test find with blank language code 332 try { 333 ruleManagementService.findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId( 334 " ",template.getTypeId(),template.getNaturalLanguageUsageId()); 335 fail("Should have thrown IllegalArgumentException: languageCode is null or blank"); 336 } catch (IllegalArgumentException e) { 337 // throws IllegalArgumentException: languageCode is null or blank 338 } 339 } 340 341 342 /** 343 * Test testFindNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId() 344 * 345 * This test focuses specifically on the RuleManagementServiceImpl 346 * .findNaturalLanguageTemplateByLanguageCodeTypeIdAndNluId(String languageCode, String typeId, String naturalLanguageUsageId) method 347 */ 348 @Test 349 public void testFindNaturalLanguageTemplatesByNaturalLanguageUsage() { 350 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 351 RuleManagementBaseTestObjectNames t6 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t6"); 352 353 // build test template (change seed value reqActive to reqActive-SL to discriminate nl usage from other tests 354 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t6.namespaceName, "sl", "reqActive-SL", 355 "Ta predmet ne sme biti neaktiven", true); 356 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("sl-reqActive-SL")); 357 358 // test find 359 List<NaturalLanguageTemplate> templates = ruleManagementService.findNaturalLanguageTemplatesByNaturalLanguageUsage(template.getNaturalLanguageUsageId()); 360 assertEquals("Unexpected number of templates returned ",1,templates.size()); 361 template = templates.get(0); 362 363 // validate the returned object 364 assertEquals("Unexpected template id returned","sl-reqActive-SL",template.getId()); 365 assertEquals("Unexpected language code found", "sl", template.getLanguageCode()); 366 assertEquals("Unexpected template found", "Ta predmet ne sme biti neaktiven", template.getTemplate()); 367 assertEquals("Unexpected TypeId value", krmsTypeRepository.getTypeByName(t6.namespaceName, "reqActive-SL").getId(), template.getTypeId()); 368 assertEquals("Unexpected Active value", true, template.isActive()); 369 370 // test find with null NaturalLanguageUsage 371 try { 372 ruleManagementService.findNaturalLanguageTemplatesByNaturalLanguageUsage(null); 373 fail("Should have thrown IllegalArgumentException: naturalLanguageUsageId is null or blank"); 374 } catch (IllegalArgumentException e) { 375 // throws IllegalArgumentException: naturalLanguageUsageId is null or blank 376 } 377 378 // test find with blank NaturalLanguageUsage 379 try { 380 ruleManagementService.findNaturalLanguageTemplatesByNaturalLanguageUsage(" "); 381 fail("Should have thrown IllegalArgumentException: naturalLanguageUsageId is null or blank"); 382 } catch (IllegalArgumentException e) { 383 // throws IllegalArgumentException: naturalLanguageUsageId is null or blank 384 } 385 386 // test find with nonexistant NaturalLanguageUsage code 387 assertEquals("Unexpected number of templates returned ",0, 388 ruleManagementService.findNaturalLanguageTemplatesByNaturalLanguageUsage("badValue").size()); 389 } 390 391 392 /** 393 * Test testFindNaturalLanguageTemplatesByType() 394 * 395 * This test focuses specifically on the RuleManagementServiceImpl 396 * .findNaturalLanguageTemplatesByType(String typeId) method 397 */ 398 @Test 399 public void testFindNaturalLanguageTemplatesByType() { 400 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 401 RuleManagementBaseTestObjectNames t7 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t7"); 402 403 // build test template (change seed value reqActive to reqActive-SL to discriminate "Type" from other tests 404 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t7.namespaceName, "es", "reqActive-ES", 405 "Este objeto no debe estar inactivo", true); 406 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("es-reqActive-ES")); 407 408 // test find 409 List<NaturalLanguageTemplate> templates = ruleManagementService.findNaturalLanguageTemplatesByType(template.getTypeId()); 410 assertEquals("Unexpected number of templates returned ",1,templates.size()); 411 412 // test find with null typeId 413 try { 414 ruleManagementService.findNaturalLanguageTemplatesByType(null); 415 fail("Should have thrown IllegalArgumentException: typeId is null or blank"); 416 } catch (IllegalArgumentException e) { 417 // throws IllegalArgumentException: typeId is null or blank 418 } 419 420 // test find with null typeId 421 try { 422 ruleManagementService.findNaturalLanguageTemplatesByType(" "); 423 fail("Should have thrown IllegalArgumentException: typeId is null or blank"); 424 } catch (IllegalArgumentException e) { 425 // throws IllegalArgumentException: typeId is null or blank 426 } 427 428 // test find non-existent value for typeId 429 assertEquals("Unexpected number of templates returned ",0, 430 ruleManagementService.findNaturalLanguageTemplatesByType("badValue").size()); 431 } 432 433 434 /** 435 * Test testFindNaturalLanguageTemplatesByTemplate() 436 * 437 * This test focuses specifically on the RuleManagementServiceImpl 438 * .findNaturalLanguageTemplatesByTemplate(String template) method 439 */ 440 @Test 441 public void testFindNaturalLanguageTemplatesByTemplate() { 442 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 443 RuleManagementBaseTestObjectNames t8 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t8"); 444 445 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t8.namespaceName, "sv", "reqActive", 446 "Detta ändamal far inte vara inaktiv", true); 447 assertNotNull("Should have found NaturalLanguageTemplate", ruleManagementService.getNaturalLanguageTemplate("sv-reqActive")); 448 449 // test find 450 List<NaturalLanguageTemplate> templates = 451 ruleManagementService.findNaturalLanguageTemplatesByTemplate("Detta ändamal far inte vara inaktiv"); 452 assertEquals("Unexpected number of templates returned ",1,templates.size()); 453 454 // test find with null Template 455 try { 456 ruleManagementService.findNaturalLanguageTemplatesByTemplate(null); 457 fail("Should have thrown IllegalArgumentException: template is null or blank"); 458 } catch (IllegalArgumentException e) { 459 // throws IllegalArgumentException: template is null or blank 460 } 461 462 // test find with null Template 463 try { 464 ruleManagementService.findNaturalLanguageTemplatesByTemplate(" "); 465 fail("Should have thrown IllegalArgumentException: template is null or blank"); 466 } catch (IllegalArgumentException e) { 467 // throws IllegalArgumentException: template is null or blank 468 } 469 470 // test find non-existent value for Template 471 assertEquals("Unexpected number of templates returned ",0, 472 ruleManagementService.findNaturalLanguageTemplatesByTemplate("badValue").size()); 473 } 474 475 /** 476 * Test testCreateNaturalLanguageTemplate() 477 * 478 * This test focuses specifically on the RuleManagementServiceImpl. 479 * createNaturalLanguageTemplate(NaturalLanguageTemplate) method, but 480 * creates the language template and associated attributes using a generated ID 481 */ 482 @Test 483 public void testCreateNaturalLanguageTemplateWithGeneratedId() { 484 // get a set of unique object names for use by this test (discriminator passed can be any unique value within this class) 485 RuleManagementBaseTestObjectNames t9 = new RuleManagementBaseTestObjectNames( CLASS_DISCRIMINATOR, "t9"); 486 487 // build a NaturalLanguageTemplate with a generated id 488 NaturalLanguageTemplate template = createTestNaturalLanguageTemplate(t9.namespaceName, "XX", "reqActive-XX", 489 "Template name", false); 490 491 assertNotNull(ruleManagementService.getNaturalLanguageTemplate(template.getId())); 492 assertEquals("Unexpected number of attributes created ",2, template.getAttributes().size()); 493 } 494}