173 lines
5.8 KiB
Java
173 lines
5.8 KiB
Java
package TD6.reseauSocialTestV2;
|
|
|
|
import static org.junit.Assert.*;
|
|
import TD6.facebookGhost.FacebookGhostNetwork;
|
|
import TD6.facebookGhost.User;
|
|
|
|
import java.util.Set;
|
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import TD6.reseauSocial.core.SocialNetworkInterface;
|
|
import TD6.reseauSocial.implementation2020.Member;
|
|
import TD6.reseauSocial.implementation2020.SocialNetWorkImpl;
|
|
import TD6.reseauSocial.implementation2020.Spy;
|
|
|
|
|
|
|
|
public class ThirdTests{
|
|
|
|
//TODO : reference to be modified according to your implementation
|
|
//Member refers to your implementation of MemberInterface
|
|
//SocialNetWorkImpl refers to your implementation of SocialNetworkInterface
|
|
SocialNetworkInterface<Member> iutRS;
|
|
|
|
//Spy snoop = new Spy();
|
|
|
|
FacebookGhostNetwork fg ;
|
|
|
|
|
|
|
|
//------------ Connexions to FG ------- //
|
|
private FacebookGhostNetwork getFacebookGhostNetwork() {
|
|
return new FacebookGhostNetwork();
|
|
}
|
|
|
|
private void buildGreekmythologieNetwork() {
|
|
User zeus = fg.addUser("Zeus","le dieu ...","Olympe");
|
|
User alcmene = fg.addUser("Alcmene","la mere d'hercule");
|
|
User hercule = fg.addUser("Hercule","le hero");
|
|
User admete = fg.addUser ("Admete","l'ami","Grece");
|
|
fg.addUser("Hera","la femme de zeus","Olympe");
|
|
fg.addFamilyRelation(hercule, zeus);
|
|
fg.addFamilyRelation(hercule, alcmene);
|
|
fg.addFriendRelation(hercule,admete);
|
|
}
|
|
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
iutRS = new SocialNetWorkImpl("IUT");
|
|
fg = getFacebookGhostNetwork();
|
|
buildGreekmythologieNetwork();
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testInit() {
|
|
assertTrue(iutRS != null);
|
|
assertTrue(fg.getUser("Zeus") != null);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testConnexionToFg() {
|
|
Member admeteLocal = iutRS.addMember("Admete", fg);
|
|
assertEquals("location de Admete",
|
|
fg.getUser("Admete").getHometown().getName(),
|
|
admeteLocal.getLocation()
|
|
);
|
|
}
|
|
|
|
@Test
|
|
public void testConnexionToFGInitialisation() {
|
|
Member admeteLocal = iutRS.addMember("Admete", fg);
|
|
Set<Member> membresAmis = iutRS.relatedToRank(admeteLocal, 1);
|
|
assertEquals("taille des amis d'ADMETE au rang 1 : 0 membres", 0, membresAmis.size());
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void testAdapter() {
|
|
Member admeteLocal = iutRS.addMember("Admete", fg);
|
|
assertEquals("location de Admete",
|
|
fg.getUser("Admete").getHometown().getName(),
|
|
admeteLocal.getLocation()
|
|
);
|
|
fg.getUser("Admete").setLocation("mer Egee");
|
|
assertEquals("location de Admete",
|
|
fg.getUser("Admete").getHometown().getName(),
|
|
admeteLocal.getLocation()
|
|
);
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
public void testConnexionToFGWithlinks() {
|
|
// Hera (not known as Zeus wife)
|
|
Member admete = iutRS.addMember("Admete", fg);
|
|
Member zeus = iutRS.addMember("Zeus", fg);
|
|
Member hera = iutRS.addMember("Hera", fg);
|
|
Member hercule = iutRS.addMember("Hercule", fg);
|
|
|
|
//Test relations
|
|
Set<Member> membresAmis = iutRS.relatedToRank(admete, 1);
|
|
assertEquals("taille des amis de Admete au rang 1 : 1 membre Hercule", 1, membresAmis.size());
|
|
|
|
membresAmis = iutRS.relatedToRank(hera, 1);
|
|
//System.out.println("amis Hera au rang 1" + membresAmis);
|
|
assertEquals("taille des amis Hera au rang 1 : 1 membres", 0, membresAmis.size());
|
|
|
|
membresAmis = iutRS.relatedToRank(hercule, 1);
|
|
//System.out.println("relations de hercule" + membresAmis);
|
|
assertEquals("taille des amis d'Hercule au rang 1 : 2 membres Admete et Zeus: ", 2, membresAmis.size());
|
|
assertTrue("Zeus est bien ami de Hercule au rang 1", membresAmis.contains(zeus));
|
|
assertTrue("Admete est bien ami de Hercule au rang 1", membresAmis.contains(admete));
|
|
|
|
int distance = iutRS.distance(hercule, zeus);
|
|
assertEquals("distance entre hercule et zeus", 2, distance);
|
|
distance = iutRS.distance(hercule, admete);
|
|
assertEquals("distance entre hercule et admete", 3, distance);
|
|
|
|
membresAmis = iutRS.relatedToRank(hercule, 2);
|
|
//System.out.println("amis d'Hercule au rang 2" + membresAmis);
|
|
assertEquals("taille des amis d'Hercule au rang 2 : 0 membre", 0, membresAmis.size());
|
|
|
|
|
|
membresAmis = iutRS.relatedToRank(admete, 1);
|
|
//System.out.println("amis d'ADMETE au rang 1" + membresAmis);
|
|
assertEquals("taille des amis d'ADMETE au rang 1 : 1 membres", 1, membresAmis.size());
|
|
distance = iutRS.distance(admete, hercule);
|
|
assertEquals("distance entre hercule et admete", 3, distance);
|
|
}
|
|
|
|
|
|
//------------ Observations : Connexions e FG ------- //
|
|
@Test
|
|
public void testConnexionToFGAndObserver() {
|
|
iutRS.addMember("Zeus", fg);
|
|
Member hera = iutRS.addMember("Hera", fg);
|
|
Member hercule = iutRS.addMember("Hercule", fg);
|
|
|
|
Set<Member> membresAmis = iutRS.relatedToRank(hercule, 1);
|
|
assertEquals("taille des amis d'Hercule au rang 1 : 1 membre car seul zeus est connu de nous", 1, membresAmis.size());
|
|
|
|
//si on ajoute un lien dans fg entre Hera et hercule on ne le voit pas.
|
|
fg.addFamilyRelation("Zeus", "Hera");
|
|
membresAmis = iutRS.relatedToRank(hercule, 1);
|
|
assertEquals("taille des amis d'Hercule au rang 1 : 1 membre car one ne voit pas lien avec Hera", 1, membresAmis.size());
|
|
assertTrue (iutRS.relatedToRank(hera, 1).size()==0);
|
|
|
|
//maintenant si lajout de lien se fait dans fg nous les verrons grace à l'observer
|
|
//Il faut donc enlever le commentaire ci-dessous
|
|
//fg.addPropertyChangeListener(iutRS);
|
|
//fg.addPropertyChangeListener(snoop);
|
|
//((SocialNetWorkImpl)iutRS).addPropertyChangeListener(snoop);
|
|
fg.addFamilyRelation("Zeus", "Hera");
|
|
|
|
membresAmis = iutRS.relatedToRank(hera, 1);
|
|
assertEquals("taille des amis Hera au rang 1 : 1 membres", 1, membresAmis.size());
|
|
|
|
|
|
//Non demande
|
|
/* MemberInterface asterix = iutRS.addMember("Asterix",0,"Asterix, le plus intelligent");
|
|
fg.addUser("Asterix", "Albert Uderzo, Asterix est le seul anti-heros qui ait jamais autant collectionne les succes et les exploits.");
|
|
assertEquals("description de Asterix", asterix.getDescription(), fg.getUser("Asterix").myProfil());
|
|
*/
|
|
|
|
}
|
|
}
|