diff --git a/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java b/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java
index ba508deea88759d1bd11f04623008449e7d13889..28fae1f4765ef82f346240d4ac0291e72c3e2d3b 100644
--- a/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java
+++ b/src/main/java/fr/irit/smac/clumate/amas/ClusterAgent.java
@@ -147,7 +147,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu
 			}
 			case ACTIVE -> {
 				if (receivedRequestSimilarityRequester != null) {
-					computedSimilarityScoreDuringThisCycle = computeSimilarityScore(receivedRequestSimilarityRequester);
+					computedSimilarityScoreDuringThisCycle = computeSimilarityScore(receivedClusterForRequestSimilarity);
 					if (logger.isLoggable(Level.INFO))
 						logger.info(this + " computed a similarity of " + computedSimilarityScoreDuringThisCycle + " with " + receivedRequestSimilarityRequester);
 				}
@@ -185,7 +185,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu
 					var message = new EvaluatedScoreMessage(this, computedSimilarityScoreDuringThisCycle);
 					if (logger.isLoggable(Level.INFO))
 						logger.info(this + " --> " + receivedRequestSimilarityRequester + " " + message);
-					receivedRequestSimilarityRequester.mailbox.receive(message);
+					receivedRequestSimilarityRequester.getMailbox().receive(message);
 					receivedRequestSimilarityRequester = null;
 
 					if (computedSimilarityScoreDuringThisCycle >= getAmas().getMasSettings().fusionThreshold()) {
@@ -266,7 +266,7 @@ public class ClusterAgent<T extends DataPoint> extends Agent<ClusterAMAS<T>, Clu
 	}
 
 
-	private float computeSimilarityScore(ClusterAgent<T> other) {
-		return getAmas().getMasSettings().similarityScoreMethod().apply(this.cluster.getRepresentative(), other.cluster.getRepresentative());
+	private float computeSimilarityScore(Cluster<T> other) {
+		return getAmas().getMasSettings().similarityScoreMethod().apply(this.cluster.getRepresentative(), other.getRepresentative());
 	}
 }
diff --git a/src/test/groovy/fr/irit/smac/clumate/amas/ClusterAgentTest.groovy b/src/test/groovy/fr/irit/smac/clumate/amas/ClusterAgentTest.groovy
index b20a247ffec261780c8f52b1d2022a636a6ba65b..473cbe623bb3c3214bd8c7a564efead32d1bf5fd 100644
--- a/src/test/groovy/fr/irit/smac/clumate/amas/ClusterAgentTest.groovy
+++ b/src/test/groovy/fr/irit/smac/clumate/amas/ClusterAgentTest.groovy
@@ -1,27 +1,45 @@
 package fr.irit.smac.clumate.amas
 
-import fr.irit.smac.amak.Agent
-import fr.irit.smac.amak.Amas
+
+import fr.irit.smac.amak.messaging.Mailbox
+import fr.irit.smac.amak.messaging.Message
+import fr.irit.smac.clumate.amas.messages.EvaluatedScoreMessage
 import fr.irit.smac.clumate.amas.messages.RequestSimilarityMessage
 import fr.irit.smac.clumate.cluster.Cluster
 import fr.irit.smac.clumate.cluster.DataPoint
 import fr.irit.smac.clumate.cluster.DataPointFuser
 import fr.irit.smac.clumate.cluster.SimilarityScoreMethod
 import spock.lang.Specification
+import spock.util.concurrent.BlockingVariable
 
 class ClusterAgentTest extends Specification {
 	def "When an agent in DORMANT receives a RequestSimilarityMessage, it should reply with a similarity score"() {
 		given:
-		def amas = new ClusterAMAS(new ClusterEnvironment<DataPoint>(), new MASSettings<DataPoint>(Mock(SimilarityScoreMethod), 0.5, EnumSet.noneOf(AMASOption),Mock(DataPointFuser)))
-		def agent = new ClusterAgent(amas, Mock(DataPoint))
+		def messageReceivedByRequester = new BlockingVariable()
+
+		def similarityScoreMethodMock = Mock(SimilarityScoreMethod)
+		similarityScoreMethodMock.apply(_, _) >> 0.3
+
+		def amasMock = Mock(ClusterAMAS<DataPoint>)
+		amasMock.getMasSettings() >> new MASSettings(similarityScoreMethodMock, 0.5f, EnumSet.noneOf(AMASOption), Mock(DataPointFuser))
+
+		def agent = new ClusterAgent(amasMock, Mock(DataPoint))
 		agent.state = ClusterAgent.State.DORMANT
-		def mock = Mock(ClusterAgent)
+
+		def requesterMailboxMock = Mock(Mailbox)
+		requesterMailboxMock.receive(_) >> { msg ->
+			messageReceivedByRequester.set(msg)
+		}
+		def requesterAgentMock = Mock(ClusterAgent)
+		requesterAgentMock.getMailbox() >> requesterMailboxMock
 
 		when:
-		agent.mailbox.receive(new RequestSimilarityMessage(mock, Mock(Cluster)))
+		agent.mailbox.receive(new RequestSimilarityMessage(requesterAgentMock, Mock(Cluster)))
+		agent.cycle()
 		agent.cycle()
 
 		then:
-		agent.state == ClusterAgent.State.ACTIVE
+		messageReceivedByRequester.get()[0] instanceof EvaluatedScoreMessage
+		((EvaluatedScoreMessage) (messageReceivedByRequester.get()[0])).similarityScore == 0.3f
 	}
 }