/**
* Copyright (c) 2011, SOCIETIES Consortium (WATERFORD INSTITUTE OF TECHNOLOGY (TSSG), HERIOT-WATT UNIVERSITY (HWU), SOLUTA.NET
* (SN), GERMAN AEROSPACE CENTRE (Deutsches Zentrum fuer Luft- und Raumfahrt e.V.) (DLR), Zavod za varnostne tehnologije
* informacijske družbe in elektronsko poslovanje (SETCCE), INSTITUTE OF COMMUNICATION AND COMPUTER SYSTEMS (ICCS), LAKE
* COMMUNICATIONS (LAKE), INTEL PERFORMANCE LEARNING SOLUTIONS LTD (INTEL), PORTUGAL TELECOM INOVAÇÃO, SA (PTIN), IBM Corp.,
* INSTITUT TELECOM (ITSUD), AMITEC DIACHYTI EFYIA PLIROFORIKI KAI EPIKINONIES ETERIA PERIORISMENIS EFTHINIS (AMITEC), TELECOM
* ITALIA S.p.a.(TI), TRIALOG (TRIALOG), Stiftelsen SINTEF (SINTEF), NEC EUROPE LTD (NEC))
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
* conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.societies.privacytrust.trust.test;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.societies.api.identity.Requestor;
import org.societies.api.internal.privacytrust.trust.ITrustBroker;
import org.societies.api.internal.privacytrust.trust.model.ExtTrustRelationship;
import org.societies.api.privacytrust.trust.TrustAccessControlException;
import org.societies.api.privacytrust.trust.TrustQuery;
import org.societies.api.privacytrust.trust.evidence.TrustEvidenceType;
import org.societies.api.privacytrust.trust.model.TrustEvidence;
import org.societies.api.privacytrust.trust.model.TrustRelationship;
import org.societies.api.privacytrust.trust.model.TrustValueType;
import org.societies.api.privacytrust.trust.model.TrustedEntityId;
import org.societies.api.privacytrust.trust.model.TrustedEntityType;
import org.societies.privacytrust.trust.api.ITrustNodeMgr;
import org.societies.privacytrust.trust.api.evidence.model.ITrustEvidence;
import org.societies.privacytrust.trust.api.evidence.repo.ITrustEvidenceRepository;
import org.societies.privacytrust.trust.api.model.ITrustedCis;
import org.societies.privacytrust.trust.api.model.ITrustedCss;
import org.societies.privacytrust.trust.api.model.ITrustedEntity;
import org.societies.privacytrust.trust.api.model.ITrustedService;
import org.societies.privacytrust.trust.api.repo.ITrustRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Test cases for the InternalTrustBroker
*
* @author <a href="mailto:nicolas.liampotis@cn.ntua.gr">Nicolas Liampotis</a> (ICCS)
* @since 0.0.7
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:META-INF/spring/InternalTrustBrokerTest-context.xml"})
public class InternalTrustBrokerTest extends AbstractTransactionalJUnit4SpringContextTests {
private static final String BASE_ID = "itbt";
private static final String TRUSTOR_CSS_ID = BASE_ID + "TrustorCssIIdentity";
private static final String TRUSTOR_CSS_ID2 = BASE_ID + "TrustorCssIIdentity2";
private static final String TRUSTED_CSS_ID = BASE_ID + "TrusteeCssIIdentity";
private static final String TRUSTED_CIS_ID = BASE_ID + "TrusteeCisIIdentity";
private static final String TRUSTED_CIS_ID2 = BASE_ID + "TrusteeCisIIdentity2";
private static final String TRUSTED_SERVICE_ID = BASE_ID + "TrusteeServiceResourceIdentifier";
//private static final String TRUSTED_SERVICE_TYPE = BASE_ID + "ServiceType";
private static TrustedEntityId trustorCssTeid;
private static TrustedEntityId trustorCssTeid2;
private static TrustedEntityId trusteeCssTeid;
private static TrustedEntityId trusteeCisTeid;
private static TrustedEntityId trusteeCisTeid2;
private static TrustedEntityId trusteeServiceTeid;
@Autowired
@InjectMocks
private ITrustBroker internalTrustBroker;
@Autowired
private ITrustRepository trustRepo;
@Autowired
private ITrustEvidenceRepository trustEvidenceRepo;
@Mock
private ITrustNodeMgr mockTrustNodeMgr;
/**
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
trustorCssTeid = new TrustedEntityId(TrustedEntityType.CSS, TRUSTOR_CSS_ID);
trustorCssTeid2 = new TrustedEntityId(TrustedEntityType.CSS, TRUSTOR_CSS_ID2);
trusteeCssTeid = new TrustedEntityId(TrustedEntityType.CSS, TRUSTED_CSS_ID);
trusteeCisTeid = new TrustedEntityId(TrustedEntityType.CIS, TRUSTED_CIS_ID);
trusteeCisTeid2 = new TrustedEntityId(TrustedEntityType.CIS, TRUSTED_CIS_ID2);
trusteeServiceTeid = new TrustedEntityId(TrustedEntityType.SVC, TRUSTED_SERVICE_ID);
}
/**
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
trustorCssTeid = null;
trustorCssTeid2 = null;
trusteeCssTeid = null;
trusteeCisTeid = null;
trusteeCisTeid2 = null;
trusteeServiceTeid = null;
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
final Collection<TrustedEntityId> myIds = new HashSet<TrustedEntityId>();
myIds.add(trustorCssTeid);
when(mockTrustNodeMgr.getMyIds()).thenReturn(myIds);
when(mockTrustNodeMgr.isMaster()).thenReturn(true);
when(mockTrustNodeMgr.getLocalRequestor()).thenReturn(
mock(Requestor.class));
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
// remove created entities
this.trustRepo.removeEntities(null, null, null);
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(6, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, direct)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedCis, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedCis, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(9, retrievedTrustRelationships.size());
// verify (trustor, trustedService, direct)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveExtTrustRelationships(TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllExtTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<ExtTrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustorCssTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
final ITrustEvidence cssEvidence = this.trustEvidenceRepo.addEvidence(
trustorCssTeid, trusteeCssTeid,
TrustEvidenceType.FRIENDED_USER, new Date((new Date().getTime()/1000)*1000),
null, null);
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
trustedCss.addEvidence(cssEvidence);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
ExtTrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify related evidence
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertFalse(retrievedTrustRelationship.getTrustEvidence().isEmpty());
assertEquals(1, retrievedTrustRelationship.getTrustEvidence().size());
TrustEvidence evidence = retrievedTrustRelationship.getTrustEvidence().iterator().next();
assertEquals(cssEvidence.getSubjectId(), evidence.getSubjectId());
assertEquals(cssEvidence.getObjectId(), evidence.getObjectId());
assertEquals(cssEvidence.getType(), evidence.getType());
assertEquals(cssEvidence.getTimestamp(), evidence.getTimestamp());
assertEquals(cssEvidence.getInfo(), evidence.getInfo());
assertEquals(cssEvidence.getSourceId(), evidence.getSourceId());
// update trusted CSS with indirect trust value
final ITrustEvidence cssEvidence2 = this.trustEvidenceRepo.addEvidence(
trustorCssTeid2, trusteeCssTeid,
TrustEvidenceType.DIRECTLY_TRUSTED, new Date((new Date().getTime()/1000)*1000),
cssIndirectTrustValue1, trustorCssTeid2);
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
trustedCss.addEvidence(cssEvidence2);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify related evidence
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertFalse(retrievedTrustRelationship.getTrustEvidence().isEmpty());
assertEquals(1, retrievedTrustRelationship.getTrustEvidence().size());
Iterator<TrustEvidence> evidenceIter = retrievedTrustRelationship.getTrustEvidence().iterator();
// indirect evidence
TrustEvidence evidence2 = evidenceIter.next();
assertEquals(cssEvidence2.getSubjectId(), evidence2.getSubjectId());
assertEquals(cssEvidence2.getObjectId(), evidence2.getObjectId());
assertEquals(cssEvidence2.getType(), evidence2.getType());
assertEquals(cssEvidence2.getTimestamp(), evidence2.getTimestamp());
assertEquals(cssEvidence2.getInfo(), evidence2.getInfo());
assertEquals(cssEvidence2.getSourceId(), evidence2.getSourceId());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted CIS with trust values
final ITrustEvidence cisEvidence = this.trustEvidenceRepo.addEvidence(
trustorCssTeid, trusteeCisTeid, TrustEvidenceType.JOINED_COMMUNITY,
new Date((new Date().getTime()/1000)*1000), null, null);
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
trustedCis.addEvidence(cisEvidence);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(6, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, direct)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify related evidence
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertFalse(retrievedTrustRelationship.getTrustEvidence().isEmpty());
assertEquals(1, retrievedTrustRelationship.getTrustEvidence().size());
evidence = retrievedTrustRelationship.getTrustEvidence().iterator().next();
assertEquals(cisEvidence.getSubjectId(), evidence.getSubjectId());
assertEquals(cisEvidence.getObjectId(), evidence.getObjectId());
assertEquals(cisEvidence.getType(), evidence.getType());
assertEquals(cisEvidence.getTimestamp(), evidence.getTimestamp());
assertEquals(cisEvidence.getInfo(), evidence.getInfo());
assertEquals(cisEvidence.getSourceId(), evidence.getSourceId());
// verify (trustor, trustedCis, indirect)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedCis, user perceived)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(9, retrievedTrustRelationships.size());
// verify (trustor, trustedService, direct)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, indirect)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, user perceived)
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCssTrustRelationships() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double indirectTrustValue1 = 0.3d;
final double userPerceivedTrustValue1 = 0.5d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(directTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(indirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveExtTrustRelationships(TrustedEntityId, TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCssExtTrustRelationships() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double indirectTrustValue1 = 0.3d;
final double userPerceivedTrustValue1 = 0.5d;
Set<ExtTrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
final ITrustEvidence cssEvidence = this.trustEvidenceRepo.addEvidence(
trustorCssTeid, trusteeCssTeid,
TrustEvidenceType.RATED, new Date((new Date().getTime()/1000)*1000),
directTrustValue1, null);
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(directTrustValue1);
trustedCss.addEvidence(cssEvidence);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
ExtTrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify related evidence
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertFalse(retrievedTrustRelationship.getTrustEvidence().isEmpty());
assertEquals(1, retrievedTrustRelationship.getTrustEvidence().size());
TrustEvidence evidence = retrievedTrustRelationship.getTrustEvidence().iterator().next();
assertEquals(cssEvidence.getSubjectId(), evidence.getSubjectId());
assertEquals(cssEvidence.getObjectId(), evidence.getObjectId());
assertEquals(cssEvidence.getType(), evidence.getType());
assertEquals(cssEvidence.getTimestamp(), evidence.getTimestamp());
assertEquals(cssEvidence.getInfo(), evidence.getInfo());
assertEquals(cssEvidence.getSourceId(), evidence.getSourceId());
// update trusted CSS with indirect trust value
final ITrustEvidence cssEvidence2 = this.trustEvidenceRepo.addEvidence(
trustorCssTeid2, trusteeCssTeid,
TrustEvidenceType.DIRECTLY_TRUSTED, new Date((new Date().getTime()/1000)*1000),
indirectTrustValue1, trustorCssTeid2);
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(indirectTrustValue1);
trustedCss.addEvidence(cssEvidence2);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify related evidence
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertFalse(retrievedTrustRelationship.getTrustEvidence().isEmpty());
assertEquals(1, retrievedTrustRelationship.getTrustEvidence().size());
Iterator<TrustEvidence> evidenceIter = retrievedTrustRelationship.getTrustEvidence().iterator();
// new CSS evidence
TrustEvidence evidence2 = evidenceIter.next();
assertEquals(cssEvidence2.getSubjectId(), evidence2.getSubjectId());
assertEquals(cssEvidence2.getObjectId(), evidence2.getObjectId());
assertEquals(cssEvidence2.getType(), evidence2.getType());
assertEquals(cssEvidence2.getTimestamp(), evidence2.getTimestamp());
assertEquals(cssEvidence2.getInfo(), evidence2.getInfo());
assertEquals(cssEvidence2.getSourceId(), evidence2.getSourceId());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveExtTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final ExtTrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
assertNotNull(retrievedTrustRelationship.getTrustEvidence());
assertTrue(retrievedTrustRelationship.getTrustEvidence().isEmpty());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCisTrustRelationships() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double indirectTrustValue1 = 0.3d;
final double userPerceivedTrustValue1 = 0.5d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CIS with direct trust value
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(directTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CIS with indirect trust value
trustedCis = (ITrustedCis) this.trustRepo.retrieveEntity(
trustedCis.getTrustorId(), trustedCis.getTrusteeId());
trustedCis.getIndirectTrust().setValue(indirectTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CIS with user perceived trust value
trustedCis = (ITrustedCis) this.trustRepo.retrieveEntity(
trustedCis.getTrustorId(), trustedCis.getTrusteeId());
trustedCis.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityId)}.
*
* @throws Exception
*/
@Test
public void testRetrieveServiceTrustRelationships() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double indirectTrustValue1 = 0.3d;
final double userPerceivedTrustValue1 = 0.5d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CIS with direct trust value
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(directTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted Service with indirect trust value
trustedService = (ITrustedService) this.trustRepo.retrieveEntity(
trustedService.getTrustorId(), trustedService.getTrusteeId());
trustedService.getIndirectTrust().setValue(indirectTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted Service with user perceived trust value
trustedService = (ITrustedService) this.trustRepo.retrieveEntity(
trustedService.getTrustorId(), trustedService.getTrusteeId());
trustedService.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationship(TrustedEntityId, TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCssTrustRelationship() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
TrustRelationship retrievedTrustRelationship;
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustRelationship);
// add trusted CSS with trust values
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(directTrustValue1);
trustedCss.getIndirectTrust().setValue(indirectTrustValue1);
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived value set to trustValue2
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getDirectTrust().setValue(directTrustValue2);
trustedCss.getIndirectTrust().setValue(indirectTrustValue2);
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationship(TrustedEntityId, TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCisTrustRelationship() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
TrustRelationship retrievedTrustRelationship;
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustRelationship);
// add trusted CSS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(directTrustValue1);
trustedCis.getIndirectTrust().setValue(indirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived value set to trustValue2
trustedCis = (ITrustedCis) this.trustRepo.retrieveEntity(
trustedCis.getTrustorId(), trustedCis.getTrusteeId());
trustedCis.getDirectTrust().setValue(directTrustValue2);
trustedCis.getIndirectTrust().setValue(indirectTrustValue2);
trustedCis.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationship(TrustedEntityId, TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveServiceTrustRelationship() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
TrustRelationship retrievedTrustRelationship;
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustRelationship);
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustRelationship);
// add trusted CSS with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(directTrustValue1);
trustedService.getIndirectTrust().setValue(indirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived value set to trustValue2
trustedService = (ITrustedService) this.trustRepo.retrieveEntity(
trustedService.getTrustorId(), trustedService.getTrusteeId());
trustedService.getDirectTrust().setValue(directTrustValue2);
trustedService.getIndirectTrust().setValue(indirectTrustValue2);
trustedService.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(directTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(indirectTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
retrievedTrustRelationship = this.internalTrustBroker.retrieveTrustRelationship(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustValue(TrustedEntityId, TrustedEntityId, org.societies.api.privacytrust.trust.model.TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCssTrustValue() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
Double retrievedTrustValue;
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCssTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustValue);
// add trusted CSS with trust values
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(directTrustValue1);
trustedCss.getIndirectTrust().setValue(indirectTrustValue1);
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustValue);
// update trusted CSS with user perceived value set to trustValue2
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getDirectTrust().setValue(directTrustValue2);
trustedCss.getIndirectTrust().setValue(indirectTrustValue2);
trustedCss.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeId(trustedCss.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustValue);
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustValue(TrustedEntityId, TrustedEntityId, org.societies.api.privacytrust.trust.model.TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveCisTrustValue() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
Double retrievedTrustValue;
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeCisTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustValue);
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(directTrustValue1);
trustedCis.getIndirectTrust().setValue(indirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustValue);
// update trusted Cis with user perceived value set to trustValue2
trustedCis = (ITrustedCis) this.trustRepo.retrieveEntity(
trustedCis.getTrustorId(), trustedCis.getTrusteeId());
trustedCis.getDirectTrust().setValue(directTrustValue2);
trustedCis.getIndirectTrust().setValue(indirectTrustValue2);
trustedCis.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedCis.getTrustorId()).setTrusteeId(trustedCis.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustValue);
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustValue(TrustedEntityId, TrustedEntityId, org.societies.api.privacytrust.trust.model.TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveServiceTrustValue() throws Exception {
// test params
final double directTrustValue1 = 0.1d;
final double directTrustValue2 = 0.2d;
final double indirectTrustValue1 = 0.3d;
final double indirectTrustValue2 = 0.4d;
final double userPerceivedTrustValue1 = 0.5d;
final double userPerceivedTrustValue2 = 0.6d;
Double retrievedTrustValue;
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNull(retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustorCssTeid).setTrusteeId(trusteeServiceTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNull(retrievedTrustValue);
// add trusted CIS with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(directTrustValue1);
trustedService.getIndirectTrust().setValue(indirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(userPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue1), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue1), retrievedTrustValue);
// update trusted Service with user perceived value set to trustValue2
trustedService = (ITrustedService) this.trustRepo.retrieveEntity(
trustedService.getTrustorId(), trustedService.getTrusteeId());
trustedService.getDirectTrust().setValue(directTrustValue2);
trustedService.getIndirectTrust().setValue(indirectTrustValue2);
trustedService.getUserPerceivedTrust().setValue(userPerceivedTrustValue2);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(directTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(indirectTrustValue2), retrievedTrustValue);
retrievedTrustValue = this.internalTrustBroker.retrieveTrustValue(
new TrustQuery(trustedService.getTrustorId()).setTrusteeId(trustedService.getTrusteeId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustValue);
assertEquals(new Double(userPerceivedTrustValue2), retrievedTrustValue);
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllCssTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CSS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllCisTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, direct)
TrustRelationship retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedCis, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedCis, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrusteeType(TrustedEntityType.CIS)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllServiceTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrusteeType(TrustedEntityType.SVC)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// verify (trustor, trustedService, direct)
TrustRelationship retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// verify (trustor, trustedService, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllDirectTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, direct)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.DIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// verify (trustor, trustedService, direct)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.DIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllIndirectTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId()).setTrustValueType(TrustValueType.INDIRECT)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// verify (trustor, trustedService, indirect)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.INDIRECT == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveAllUserPerceivedTrustRelationships() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid)
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(2, retrievedTrustRelationships.size());
// verify (trustor, trustedCis, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeCisTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustedCss.getTrustorId())
.setTrustValueType(TrustValueType.USER_PERCEIVED)).get();
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(3, retrievedTrustRelationships.size());
// verify (trustor, trustedService, user perceived)
retrievedTrustRelationship = null;
for (final TrustRelationship tr : retrievedTrustRelationships) {
if (trustorCssTeid.equals(tr.getTrustorId())
&& trusteeServiceTeid.equals(tr.getTrusteeId())
&& TrustValueType.USER_PERCEIVED == tr.getTrustValueType()) {
retrievedTrustRelationship = tr;
break;
}
}
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#retrieveTrustRelationships(TrustedEntityId, TrustedEntityType, TrustValueType)}.
*
* @throws Exception
*/
@Test
public void testRetrieveTrustRelationshipsByType() throws Exception {
// test params
final double cssDirectTrustValue1 = 0.1d;
final double cssIndirectTrustValue1 = 0.2d;
final double cssUserPerceivedTrustValue1 = 0.3d;
final double cisDirectTrustValue1 = 0.3d;
final double cisIndirectTrustValue1 = 0.5d;
final double cisUserPerceivedTrustValue1 = 0.6d;
final double serviceDirectTrustValue1 = 0.7d;
final double serviceIndirectTrustValue1 = 0.8d;
final double serviceUserPerceivedTrustValue1 = 0.9d;
Set<TrustRelationship> retrievedTrustRelationships;
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
}
}
// add trusted CSS with direct trust value
ITrustedCss trustedCss = (ITrustedCss) this.trustRepo.createEntity(
trustorCssTeid, trusteeCssTeid);
trustedCss.getDirectTrust().setValue(cssDirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
if (TrustedEntityType.CSS == entityType && TrustValueType.DIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else {
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
}
}
}
// update trusted CSS with indirect trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getIndirectTrust().setValue(cssIndirectTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
if (TrustedEntityType.CSS == entityType && TrustValueType.INDIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.CSS == entityType && TrustValueType.DIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
} else {
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
}
}
}
// update trusted CSS with user perceived trust value
trustedCss = (ITrustedCss) this.trustRepo.retrieveEntity(
trustedCss.getTrustorId(), trustedCss.getTrusteeId());
trustedCss.getUserPerceivedTrust().setValue(cssUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCss);
// verify
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
if (TrustedEntityType.CSS == entityType && TrustValueType.USER_PERCEIVED == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCss.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCss.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cssUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.CSS == entityType
&& (TrustValueType.DIRECT == valueType
|| TrustValueType.INDIRECT == valueType)) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
} else {
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
}
}
}
// add trusted CIS with trust values
ITrustedCis trustedCis = (ITrustedCis) this.trustRepo.createEntity(
trustorCssTeid, trusteeCisTeid);
trustedCis.getDirectTrust().setValue(cisDirectTrustValue1);
trustedCis.getIndirectTrust().setValue(cisIndirectTrustValue1);
trustedCis.getUserPerceivedTrust().setValue(cisUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedCis);
// verify
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
if (TrustedEntityType.CIS == entityType && TrustValueType.DIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.CIS == entityType && TrustValueType.INDIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.CIS == entityType && TrustValueType.USER_PERCEIVED == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedCis.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedCis.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(cisUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.CSS == entityType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
} else {
assertNotNull(retrievedTrustRelationships);
assertTrue(retrievedTrustRelationships.isEmpty());
}
}
}
// add trusted Service with trust values
ITrustedService trustedService = (ITrustedService) this.trustRepo.createEntity(
trustorCssTeid, trusteeServiceTeid);
trustedService.getDirectTrust().setValue(serviceDirectTrustValue1);
trustedService.getIndirectTrust().setValue(serviceIndirectTrustValue1);
trustedService.getUserPerceivedTrust().setValue(serviceUserPerceivedTrustValue1);
this.trustRepo.updateEntity(trustedService);
// verify
for (final TrustedEntityType entityType : TrustedEntityType.values()) {
for (final TrustValueType valueType : TrustValueType.values()) {
if (TrustedEntityType.LGC == entityType)
continue;
retrievedTrustRelationships = this.internalTrustBroker.retrieveTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(entityType)
.setTrustValueType(valueType)).get();
if (TrustedEntityType.SVC == entityType && TrustValueType.DIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.DIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceDirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.SVC == entityType && TrustValueType.INDIRECT == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.INDIRECT, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceIndirectTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else if (TrustedEntityType.SVC == entityType && TrustValueType.USER_PERCEIVED == valueType) {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
TrustRelationship retrievedTrustRelationship = retrievedTrustRelationships.iterator().next();
assertNotNull(retrievedTrustRelationship);
assertNotNull(retrievedTrustRelationship.getTrustorId());
assertEquals(trustedService.getTrustorId(), retrievedTrustRelationship.getTrustorId());
assertNotNull(retrievedTrustRelationship.getTrusteeId());
assertEquals(trustedService.getTrusteeId(), retrievedTrustRelationship.getTrusteeId());
assertNotNull(retrievedTrustRelationship.getTrustValueType());
assertEquals(TrustValueType.USER_PERCEIVED, retrievedTrustRelationship.getTrustValueType());
assertNotNull(retrievedTrustRelationship.getTrustValue());
assertEquals(new Double(serviceUserPerceivedTrustValue1), retrievedTrustRelationship.getTrustValue());
assertNotNull(retrievedTrustRelationship.getTimestamp());
} else {
assertNotNull(retrievedTrustRelationships);
assertFalse(retrievedTrustRelationships.isEmpty());
assertEquals(1, retrievedTrustRelationships.size());
}
}
}
}
/**
* Test method for {@link org.societies.api.internal.privacytrust.trust.ITrustBroker#removeTrustRelationships(TrustQuery)}.
*
* @throws Exception
*/
@Test
public void testRemoveTrustRelationships() throws Exception {
boolean npeCaught = false;
boolean taceCaught = false;
// verify NPE
try {
this.internalTrustBroker.removeTrustRelationships(null);
} catch (NullPointerException npe) {
npeCaught = true;
}
assertTrue(npeCaught);
this.trustRepo.createEntity(trustorCssTeid, trusteeCssTeid);
// verify TrustAccessControlException
try {
this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid2)).get();
} catch (TrustAccessControlException tace) {
taceCaught = true;
}
assertTrue(taceCaught);
// verify
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid)).get());
this.trustRepo.createEntity(trustorCssTeid, trusteeCssTeid);
// verify
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.SVC)).get());
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)).get());
this.trustRepo.createEntity(trustorCssTeid, trusteeCssTeid);
this.trustRepo.createEntity(trustorCssTeid, trusteeCisTeid2);
// verify
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.SVC)).get());
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)).get());
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)).get());
final ITrustedEntity trusteeCssByCss =
this.trustRepo.createEntity(trustorCssTeid, trusteeCssTeid);
trusteeCssByCss.getDirectTrust().setValue(.5d);
this.trustRepo.updateEntity(trusteeCssByCss);
final ITrustedEntity trusteeCisByCss =
this.trustRepo.createEntity(trustorCssTeid, trusteeCisTeid);
trusteeCisByCss.getIndirectTrust().setValue(.25d);
this.trustRepo.updateEntity(trusteeCisByCss);
// verify
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrustValueType(TrustValueType.USER_PERCEIVED)).get());
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrustValueType(TrustValueType.DIRECT)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrustValueType(TrustValueType.DIRECT)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CSS)
.setTrustValueType(TrustValueType.INDIRECT)).get());
assertTrue(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)
.setTrustValueType(TrustValueType.INDIRECT)).get());
assertFalse(this.internalTrustBroker.removeTrustRelationships(
new TrustQuery(trustorCssTeid).setTrusteeType(TrustedEntityType.CIS)
.setTrustValueType(TrustValueType.INDIRECT)).get());
}
}