PropertyServiceImpl implements PropertyService { @Override @Transactional(rollbackFor = Throwable.class) public void putSubjectProperty(String appName, String domainName, String subjectId, String name, String value) { checkArgumentsHaveText(appName, domainName, subjectId, name); try { long appId = appNameAlias.getAliasFor(appName); long domainId = domainNameAlias.getAliasFor(domainName); long propertyNameId = propertyNameAlias.getAliasFor(name); propertyDao.putProperty(appId, domainId, subjectId, propertyNameId, value); } catch (Throwable t) { propagatePropertyNameIfTruncationError(t, name); throw new PropertyServiceUnexpectedException("Failed to put property", t); } }  @Override @Transactional(rollbackFor = Throwable.class) void putSubjectProperty(String appName, String domainName, String subjectId, String name, String value); @Transactional(rollbackFor = Throwable.class) @Override void putSubjectProperties(String appName, String domainName, String subjectId,
			List<NamedProperty> namedProperties); @Transactional(rollbackFor = Throwable.class) @Override void putSubjectsProperty(String appName, String domainName, List<String> subjectsIds, String name,
			String value); @Override String findSubjectProperty(String appName, String domainName, String subjectId, String name); @Override Map<String, String> findSubjectProperties(String appName, String domainName, String subjectId); @Override Map<String, Map<String, String>> findSubjectsProperties(String appName, String domainName,
			List<String> subjectsIds); @Override Map<String, String> findSubjectsProperty(String appName, String domainName, List<String> subjectsIds,
			String name); @Override @Transactional(rollbackFor = Throwable.class) void deleteSubjectProperties(String appName, String domainName, String subjectId); @Override @Transactional(rollbackFor = Throwable.class) void deleteSubjectsProperties(String appName, String domainName, List<String> subjectsIds); PropertyDao getPropertyDao(); void setPropertyDao(PropertyDao propertyDao); StringIdAliasService getAppNameAlias(); void setAppNameAlias(StringIdAliasService appNameAlias); StringIdAliasService getDomainNameAlias(); void setDomainNameAlias(StringIdAliasService domainNameAlias); StringIdAliasService getPropertyNameAlias(); void setPropertyNameAlias(StringIdAliasService propertyNameAlias);  }
@Test(expected = IllegalArgumentException.class) public void testPutSubjectProperty_defensive_nullApp() { PropertyService fixture = PropertyServiceImplFactory.createInstance(); fixture.putSubjectProperty(null, "", "", "", ""); }
@Test(expected = IllegalArgumentException.class) public void testPutSubjectProperty_defensive_emptyApp() { PropertyService fixture = PropertyServiceImplFactory.createInstance(); fixture.putSubjectProperty(null, "", "", "", ""); }