1 package hu.user.mediacube.executors.tests;
\r
3 import java.sql.Connection;
\r
4 import java.sql.PreparedStatement;
\r
5 import java.sql.ResultSet;
\r
6 import java.sql.SQLException;
\r
7 import java.sql.Timestamp;
\r
9 import org.junit.AfterClass;
\r
10 import org.junit.BeforeClass;
\r
11 import org.junit.Test;
\r
13 import user.commons.logging.LogUtils;
\r
14 import user.jobengine.db.IItemManager;
\r
15 import user.jobengine.db.IResultSetConsumer;
\r
16 import user.jobengine.db.IStatementDecorator;
\r
17 import user.jobengine.db.ItemManager;
\r
18 import user.jobengine.server.steps.MetadataTypeDetector;
\r
19 import user.jobengine.server.steps.MetadataTypeDetector.MetadataType;
\r
20 import user.jobengine.server.steps.PlanAirExtensions;
\r
22 public class SupportCheckItem {
\r
23 class PlanAirProcessor implements IStatementDecorator, IResultSetConsumer {
\r
25 private final MetadataType type;
\r
26 private String search;
\r
27 private String itemHouseId;
\r
28 private String itemTitle;
\r
30 public PlanAirProcessor(String search) {
\r
31 this.search = MetadataTypeDetector.truncateExtension(search);
\r
32 this.type = MetadataTypeDetector.GuessMetadataType(this.search);
\r
33 this.search = this.search.substring(1, this.search.length() - 1);
\r
37 public void decorate(PreparedStatement statement) throws SQLException {
\r
38 statement.setString(1, search);
\r
41 public String getItemHouseId() {
\r
45 public String getItemTitle() {
\r
49 public MetadataType getType() {
\r
53 public Connection process(Connection connection) throws Exception {
\r
54 return PlanAirExtensions.search(connection, type, manager, "jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo;", "MAM", "Echotv.hu", this, this);
\r
58 public boolean process(ResultSet resultSet) throws SQLException {
\r
60 case TrafficMaterial:
\r
61 itemHouseId = resultSet.getString("v_ProgrammeID");
\r
62 itemTitle = resultSet.getString("v_ProgTitle");
\r
65 throw new SQLException("Not implemented!");
\r
72 protected static IItemManager manager = null;
\r
73 private static final String LOWRES_ROOT = "//10.10.1.27/mclowres/www/video";
\r
75 private static final long[] duplicateLength = { 0 };
\r
78 static public void setUpConnection() {
\r
79 // System.setProperty("jobengine.octopus.rundowns.name", "test_rundowns");
\r
80 // System.setProperty("jobengine.octopus.stories.name", "test_stories");
\r
81 // System.setProperty("jobengine.octopus.storyfolders.name", "test_storyfolders");
\r
82 System.setProperty("jobengine.octopus.rundowns.name", "rundowns180620");
\r
83 System.setProperty("jobengine.octopus.stories.name", "stories180620");
\r
84 System.setProperty("jobengine.octopus.storyfolders.name", "storyfolders180620");
\r
86 System.setProperty("jobengine.nosql.db.url", "jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");
\r
87 System.setProperty("jobengine.nosql.db.user", "db2admin");
\r
88 System.setProperty("jobengine.nosql.db.password", "password");
\r
89 System.setProperty(ItemManager.DBURL, "jdbc:db2://10.10.1.27:50000/mc:retrieveMessagesFromServerOnGetMessage=true;");
\r
90 System.setProperty(ItemManager.DBUSERNAME, "db2admin");
\r
91 System.setProperty(ItemManager.DBPASSWORD, "password");
\r
92 System.setProperty(LogUtils.LOGLEVEL, "INFO");
\r
93 // System.setProperty(ItemManager.DBURL,
\r
95 manager = new ItemManager();
\r
100 static public void tearDownConnection() {
\r
101 manager.disconnect();
\r
105 public void process() throws SQLException {
\r
106 final Connection[] con = { null };
\r
107 final int[] count = { 0 };
\r
108 final int[] processed = { 0 };
\r
109 String sqlb = "select %s from vw_items where (mediatype = 'ECHO műsor' or mediatype = 'Műsor')"; // and mediaFileHouseId like '%%M109138A%%'
\r
110 String sqlc = String.format(sqlb, "count(*)");
\r
111 String sql = String.format(sqlb + " order by mediacreated desc", "itemid, itemhouseid, itemtitle, mediaid, mediafilehouseid, mediacreated");
\r
113 manager.executeQuery(sqlc, rs -> {
\r
114 count[0] = rs.getInt(1);
\r
117 manager.executeQuery(sql, rs -> {
\r
119 long itemId = rs.getLong("itemId");
\r
120 String itemHouseId = rs.getString("itemHouseId");
\r
121 itemHouseId = itemHouseId == null ? "" : itemHouseId;
\r
122 String itemTitle = rs.getString("itemTitle");
\r
123 itemTitle = itemTitle == null ? "" : itemTitle;
\r
124 String mediaFileHouseId = rs.getString("mediaFileHouseId");
\r
125 Timestamp mediaCreated = rs.getTimestamp("mediaCreated");
\r
127 if (mediaFileHouseId.length() > 7)
\r
128 mediaFileHouseId = mediaFileHouseId.substring(0, 8);
\r
130 PlanAirProcessor p = new PlanAirProcessor(mediaFileHouseId);
\r
131 if (p.getType() == MetadataType.TrafficMaterial) {
\r
132 con[0] = p.process(con[0]);
\r
133 String itemHouseId2 = p.getItemHouseId() == null ? "" : p.getItemHouseId();
\r
134 String itemTitle2 = p.getItemTitle() == null ? "" : p.getItemTitle();
\r
135 if (!itemHouseId2.equals(itemHouseId) || !itemTitle2.equals(itemTitle)) {
\r
137 System.out.println("Item " + itemId + " : wrong | " + mediaCreated + ", " + mediaFileHouseId + ", " + itemHouseId + ", " + itemTitle);
\r
138 System.out.println("\t good | " + itemHouseId2 + ", " + itemTitle2 + ", " + (processed[0] * 100) / count[0] + "%");
\r
143 } catch (Exception e) {
\r
144 e.printStackTrace();
\r
150 if (con[0] != null)
\r