use of com.marcnuri.yakc.model.io.k8s.api.core.v1.Node in project smarthome by eclipse.
the class HomieImplementationTests method retrieveAttributes.
@SuppressWarnings("null")
@Test
public void retrieveAttributes() throws InterruptedException, ExecutionException {
assertThat(connection.hasSubscribers(), is(false));
Node node = new Node(deviceTopic, "testnode", ThingChannelConstants.testHomieThing, callback, new NodeAttributes());
Property property = spy(new Property(deviceTopic + "/testnode", node, "temperature", callback, new PropertyAttributes()));
// Create a scheduler
ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(4);
property.subscribe(connection, scheduler, 100).get();
assertThat(property.attributes.settable, is(true));
assertThat(property.attributes.retained, is(true));
assertThat(property.attributes.name, is("Testprop"));
assertThat(property.attributes.unit, is("°C"));
assertThat(property.attributes.datatype, is(DataTypeEnum.float_));
assertThat(property.attributes.format, is("-100:100"));
verify(property).attributesReceived();
// Receive property value
ChannelState channelState = spy(property.getChannelState());
PropertyHelper.setChannelState(property, channelState);
property.startChannel(connection, scheduler, 200).get();
verify(channelState).start(any(), any(), anyInt());
verify(channelState).processMessage(any(), any());
verify(callback).updateChannelState(any(), any());
assertThat(property.getChannelState().getCache().getChannelState(), is(new DecimalType(10)));
property.stop().get();
assertThat(connection.hasSubscribers(), is(false));
}
use of com.marcnuri.yakc.model.io.k8s.api.core.v1.Node in project smarthome by eclipse.
the class HomieThingHandlerTests method handleCommandRefresh.
@SuppressWarnings("null")
@Test
public void handleCommandRefresh() {
// Create mocked homie device tree with one node and one read-only property
Node node = thingHandler.device.createNode("node", spy(new NodeAttributes()));
doReturn(future).when(node.attributes).subscribeAndReceive(any(), any(), anyString(), any(), anyInt());
doReturn(future).when(node.attributes).unsubscribe();
node.attributes.name = "testnode";
Property property = node.createProperty("property", spy(new PropertyAttributes()));
doReturn(future).when(property.attributes).subscribeAndReceive(any(), any(), anyString(), any(), anyInt());
doReturn(future).when(property.attributes).unsubscribe();
property.attributes.name = "testprop";
property.attributes.datatype = DataTypeEnum.string_;
property.attributes.settable = false;
property.attributesReceived();
node.properties.put(property.propertyID, property);
thingHandler.device.nodes.put(node.nodeID, node);
thingHandler.connection = connection;
thingHandler.handleCommand(property.channelUID, RefreshType.REFRESH);
verify(callback).stateUpdated(argThat(arg -> property.channelUID.equals(arg)), argThat(arg -> property.getChannelState().getCache().getChannelState().equals(arg)));
}
use of com.marcnuri.yakc.model.io.k8s.api.core.v1.Node in project smarthome by eclipse.
the class ChildMapTests method createNode.
private Node createNode(String id) {
Node node = new Node(deviceTopic, id, ThingChannelConstants.testHomieThing, callback, spy(new NodeAttributes()));
doReturn(future).when(node.attributes).subscribeAndReceive(any(), any(), anyString(), any(), anyInt());
doReturn(future).when(node.attributes).unsubscribe();
return node;
}
use of com.marcnuri.yakc.model.io.k8s.api.core.v1.Node in project ignite by apache.
the class GridConcurrentLinkedDequeMultiThreadedTest method testQueueMultiThreaded.
/**
* @throws Exception If failed.
*/
@Test
public void testQueueMultiThreaded() throws Exception {
final AtomicBoolean done = new AtomicBoolean();
final ConcurrentLinkedDeque8<Byte> queue = new ConcurrentLinkedDeque8<>();
// Poll thread.
IgniteInternalFuture<?> pollFut = multithreadedAsync(new Callable<Object>() {
@Nullable
@Override
public Object call() throws Exception {
info("Thread started.");
while (!done.get()) try {
queue.poll();
} catch (Throwable t) {
error("Error in poll thread.", t);
done.set(true);
}
info("Thread finished.");
return null;
}
}, 5, "queue-poll");
// Producer thread.
IgniteInternalFuture<?> prodFut = multithreadedAsync(new Callable<Object>() {
@Nullable
@Override
public Object call() throws Exception {
info("Thread started.");
while (!done.get()) {
Node<Byte> n = queue.addx((byte) 1);
if (RND.nextBoolean())
queue.unlinkx(n);
}
info("Thread finished.");
return null;
}
}, 5, "queue-prod");
Thread.sleep(20 * 1000);
done.set(true);
pollFut.get();
prodFut.get();
}
use of com.marcnuri.yakc.model.io.k8s.api.core.v1.Node in project incubator-skywalking by apache.
the class AccessLogAnalyzer method identify.
default Role identify(StreamAccessLogsMessage.Identifier alsIdentifier, Role defaultRole) {
if (alsIdentifier == null) {
return defaultRole;
}
if (!alsIdentifier.hasNode()) {
return defaultRole;
}
final Node node = alsIdentifier.getNode();
final String id = node.getId();
if (id.startsWith("router~")) {
return Role.PROXY;
} else if (id.startsWith("sidecar~")) {
return Role.SIDECAR;
}
return defaultRole;
}
Aggregations