/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside;
import org.apache.commons.io.FileUtils;
import org.jboss.weld.resources.SingleThreadScheduledExecutorServiceFactory;
import org.junit.Assert;
import org.junit.Test;
import ru.codeinside.adm.LogConverter;
import ru.codeinside.adm.database.SmevLog;
import ru.codeinside.gses.webui.osgi.LogCustomizer;
import javax.persistence.EntityManager;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class LogFileTest {
@Test
public void test() throws URISyntaxException, IOException {
final URL resource = getClass().getClassLoader().getResource("log");
assertNotNull(resource);
final File logs = new File(new File("target"), "logs");
FileUtils.deleteDirectory(logs);
FileUtils.copyDirectory(new File("src/test/resources/log"), logs, true);
File logPackage1 = new File(logs, "c/7/01807d4f1fbc40fca8e12c3becd82dc7");
assertTrue(logPackage1.setLastModified(100000000L));
File logPackage2 = new File(logs, "1/3/fb255dab0152428b92443dcf02051813");
assertTrue(logPackage2.setLastModified(100000011L));
final List<SmevLog> items = new ArrayList<SmevLog>();
LogConverter.Storage storage = new LogConverter.Storage() {
@Override
public String getLazyDirPath() {
return logs.getPath();
}
@Override
public SmevLog findLogEntry(String marker) {
return null;
}
@Override
public void store(SmevLog smevLog) {
items.add(smevLog);
}
};
LogConverter converter = new LogConverter();
converter.setStorage(storage);
assertTrue(converter.logToBd());
assertEquals(1, items.size());
SmevLog _1 = items.get(0);
assertEquals("fb255dab0152428b92443dcf02051813", _1.getMarker());
assertNotNull(_1.getSendHttp());
assertNotNull(_1.getReceiveHttp());
assertEquals("FSSR01001", _1.getSendPacket().getRecipient());
assertEquals("9330c70a-8b74-4496-9229-7169a9700313", _1.getReceivePacket().getRequestIdRef());
assertTrue(converter.logToBd());
assertEquals(2, items.size());
SmevLog _2 = items.get(1);
assertEquals("01807d4f1fbc40fca8e12c3becd82dc7", _2.getMarker());
assertNotNull(_2.getLogDate());
assertNotNull(_2.getSendHttp());
assertNotNull(_2.getReceiveHttp());
assertEquals("9330c70a-8b74-4496-9229-7169a9700313", _2.getSendPacket().getOriginRequestIdRef());
assertEquals("d1a97f4d-9f29-404a-bd86-3f443ec05bb0", _2.getReceivePacket().getRequestIdRef());
assertFalse(converter.logToBd());
assertEquals(2, items.size());
}
}