Package org.lightview.business.methods.boundary

Source Code of org.lightview.business.methods.boundary.MethodMonitoringIT

package org.lightview.business.methods.boundary;

import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.lightview.business.methods.entity.MethodStatistics;
import org.lightview.business.methods.entity.MethodsStatistics;
import org.lightview.presentation.dashboard.DashboardModel;

import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

import static junit.framework.Assert.assertNotNull;
import static org.junit.Assert.assertFalse;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

/**
* @author: adam-bien.com
*/
public class MethodMonitoringIT {
    MethodMonitoring cut;

    private CountDownLatch blockSupport;
    private MethodsStatistics response;

    @Before
    public void init() {
        this.blockSupport = new CountDownLatch(1);
        this.cut = new MethodMonitoring();
        this.cut.init();
        this.cut.model = mock(DashboardModel.class);
        StringProperty property = new SimpleStringProperty("http://localhost:8080/lightfish");
        when(this.cut.model.serverUriProperty()).thenReturn(property);
    }

    @Test
    public void fetchMethodStatistics() throws InterruptedException {
        this.cut.listenToMethodStatistics(s -> {
            this.response = s;
            this.blockSupport.countDown();
        }, t -> {
        }, "lightfish", "ConfigurationStore");
        this.blockSupport.await(2000, TimeUnit.MILLISECONDS);
        Assert.assertNotNull(response);
    }

    @Test
    public void extractMethodsFromRequest() throws InterruptedException {
        this.cut.listenToMethodStatistics(s -> {
            this.response = s;
            this.blockSupport.countDown();
        }, t -> {
            System.err.print(t);
        }, "lightfish", "ConfigurationStore");
        this.blockSupport.await(2000, TimeUnit.MILLISECONDS);
        validateStatistics(response);

    }

    public void validateStatistics(MethodsStatistics methodStatistics) {
        final List<MethodStatistics> all = methodStatistics.all();
        assertFalse(all.isEmpty());
        for (MethodStatistics statistics : all) {
            final String name = statistics.getName();
            assertFalse(name.isEmpty());
            final long invocationCount = statistics.getInvocationCount();
            final long lastExecutionTime = statistics.getLastExecutionTime();
            final long maxTime = statistics.getMaxTime();
            final long totalInvocationTime = statistics.getTotalInvocationTime();
            final long totalNumErrors = statistics.getTotalNumErrors();
            final long totalNumSuccess = statistics.getTotalNumSuccess();
        }
    }

}
TOP

Related Classes of org.lightview.business.methods.boundary.MethodMonitoringIT

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.