Skip to content
This repository has been archived by the owner on Oct 20, 2022. It is now read-only.

Commit

Permalink
CEP: Fix subscriptions not refreshed when Fiware-ServiceName/Path is …
Browse files Browse the repository at this point in the history
…updated (#72)

This closes #69
  • Loading branch information
iamarnavgarg authored and marcc-orange committed Jul 11, 2018
1 parent eaa08bb commit e45f4c8
Show file tree
Hide file tree
Showing 3 changed files with 135 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ private Subscriptions migrateSubscriptions(Configuration configuration) {
oldEventTypeIn.getProviders().forEach(oldProvider -> {

Optional<Provider> optionalProvider =
newEventTypeIn.getProviders().stream().filter(p -> p.getUrl().equals(oldProvider.getUrl())).findFirst();
newEventTypeIn.getProviders().stream().filter(p -> p.hasSameOrigin(oldProvider)).findFirst();
if (optionalProvider.isPresent()) {
Provider provider = optionalProvider.get();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.fasterxml.jackson.annotation.JsonValue;

import java.time.Instant;
import java.util.Objects;

/**
* Provider defines the URL of one of the providers of a EventTypeIn.
Expand Down Expand Up @@ -96,4 +97,17 @@ public String getServicePath() {
public void setServicePath(String servicePath) {
this.servicePath = servicePath;
}

public boolean hasSameOrigin(Provider otherProvider) {
if (otherProvider != null) {
if (otherProvider.url != null && !otherProvider.url.isEmpty()) {
return url.equals(otherProvider.url)
&& (Objects.equals(servicePath,
otherProvider.servicePath))
&& (Objects.equals(serviceName,
otherProvider.serviceName));
}
}
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package com.orange.cepheus.cep.model;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Test;

public class ProviderTest {

@Test
public void testHasSameOriginSameProvider() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN");
pr.setServicePath("SP");
boolean checkTest = pr.hasSameOrigin(provider);
assertTrue(checkTest);
}

@Test
public void testHasSameOriginDifferentUrl() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://diffUrl");
pr.setServiceName("SN");
pr.setServicePath("SP");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginDiffServiceName() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN1");
pr.setServicePath("SP");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginDiffServicePath() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN");
pr.setServicePath("SP1");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginUrlNull() {
Provider provider = new Provider();
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN");
pr.setServicePath("SP1");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginServiceNameNull() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServicePath("SP");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginServicePathNull() {
Provider provider = new Provider("http://sameUrl");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasSameOriginUrlIsEmpty() {
Provider provider = new Provider("");
provider.setServiceName("SN");
provider.setServicePath("SP");

Provider pr = new Provider("http://sameUrl");
pr.setServiceName("SN");
pr.setServicePath("SP1");
boolean checkTest = pr.hasSameOrigin(provider);
assertFalse(checkTest);
}

@Test
public void testHasObjectNull() {
Provider provider = new Provider();

Provider pr = null;
boolean checkTest = provider.hasSameOrigin(pr);
assertFalse(checkTest);
}
}

0 comments on commit e45f4c8

Please sign in to comment.