package ee.esutoniagodesu.dataworks;
import ee.esutoniagodesu.Application;
import ee.esutoniagodesu.domain.heisig.table.HeisigCoreKw;
import ee.esutoniagodesu.repository.domain.heisig.HeisigCoreKwRepository;
import ee.esutoniagodesu.service.HeisigService;
import ee.esutoniagodesu.util.commons.JCAudio;
import ee.esutoniagodesu.web.rest.HeisigResource;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.boot.test.IntegrationTest;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import javax.inject.Inject;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
@Transactional
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class PersonResourceTest {
@Inject
private HeisigCoreKwRepository heisigCoreKwRepository;
@Inject
private HeisigService heisigService;
private MockMvc mockMvc;
@Before
public void setup() {
HeisigResource resource = new HeisigResource();
ReflectionTestUtils.setField(resource, "service", heisigService);
this.mockMvc = MockMvcBuilders.standaloneSetup(resource).build();
}
//@Test
//@Rollback(false)
public void t_en_to_db() throws Exception {
String address = "/home/scylla/esutoniagodesu/egd-web/tmp/en_null/";
Path enPath = Paths.get(address);
Files.walk(enPath).forEach(filePath -> {
if (Files.isRegularFile(filePath)) {
try {
String fileName = filePath.getFileName().toString();
System.out.println(fileName);
Integer frameNo = Integer.valueOf(fileName.substring(0, fileName.indexOf(".mp3")));
System.out.println(frameNo);
byte[] array = Files.readAllBytes(filePath);
String src = "GOOGLE-TTS";
HeisigCoreKw kw = heisigCoreKwRepository.findOne(frameNo);
kw.setKeywordEnAudio(array);
kw.setKeywordEnAudioSrc(src);
heisigCoreKwRepository.save(kw);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
@Test
//@Rollback(false)
public void t_en_is_null() throws Exception {
String address = "/home/scylla/esutoniagodesu/egd-web/tmp/en_null/";
List<HeisigCoreKw> kws = heisigCoreKwRepository.findByKeywordAudioIsNull(1, 1000);
System.out.println(kws);
for (HeisigCoreKw p : kws) {
//Map.Entry<String, byte[]> entry = JCAudio.googleTTSBytes(p.getKeywordEn(), "en_UK");
//System.out.println(entry.getKey());
//Path path = Paths.get(address + "RTK1_keyword_en_"+p.getId()+".mp3");
//Files.write(path, entry.getValue());
System.out.println(p.getId() + ", " + p.getKeywordEn());
}
}
}