53a900d56d75d8ef41113694e611e1043f5c11da
[mediacube.git] /
1 package hu.user.mediacube.executors.tests;\r
2 \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
8 \r
9 import org.junit.AfterClass;\r
10 import org.junit.BeforeClass;\r
11 import org.junit.Test;\r
12 \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
21 \r
22 public class SupportCheckItem {\r
23         class PlanAirProcessor implements IStatementDecorator, IResultSetConsumer {\r
24 \r
25                 private final MetadataType type;\r
26                 private String search;\r
27                 private String itemHouseId;\r
28                 private String itemTitle;\r
29 \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
34                 }\r
35 \r
36                 @Override\r
37                 public void decorate(PreparedStatement statement) throws SQLException {\r
38                         statement.setString(1, search);\r
39                 }\r
40 \r
41                 public String getItemHouseId() {\r
42                         return itemHouseId;\r
43                 }\r
44 \r
45                 public String getItemTitle() {\r
46                         return itemTitle;\r
47                 }\r
48 \r
49                 public MetadataType getType() {\r
50                         return type;\r
51                 }\r
52 \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
55                 }\r
56 \r
57                 @Override\r
58                 public boolean process(ResultSet resultSet) throws SQLException {\r
59                         switch (type) {\r
60                         case TrafficMaterial:\r
61                                 itemHouseId = resultSet.getString("v_ProgrammeID");\r
62                                 itemTitle = resultSet.getString("v_ProgTitle");\r
63                                 break;\r
64                         default:\r
65                                 throw new SQLException("Not implemented!");\r
66                         }\r
67                         return true;\r
68                 }\r
69 \r
70         }\r
71 \r
72         protected static IItemManager manager = null;\r
73         private static final String LOWRES_ROOT = "//10.10.1.27/mclowres/www/video";\r
74 \r
75         private static final long[] duplicateLength = { 0 };\r
76 \r
77         @BeforeClass\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
85 \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
94 \r
95                 manager = new ItemManager();\r
96                 manager.connect();\r
97         }\r
98 \r
99         @AfterClass\r
100         static public void tearDownConnection() {\r
101                 manager.disconnect();\r
102         }\r
103 \r
104         @Test\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
112 \r
113                 manager.executeQuery(sqlc, rs -> {\r
114                         count[0] = rs.getInt(1);\r
115                         return true;\r
116                 }, null);\r
117                 manager.executeQuery(sql, rs -> {\r
118                         processed[0]++;\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
126                         try {\r
127                                 if (mediaFileHouseId.length() > 7)\r
128                                         mediaFileHouseId = mediaFileHouseId.substring(0, 8);\r
129 \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
136 \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
139 \r
140                                         }\r
141 \r
142                                 }\r
143                         } catch (Exception e) {\r
144                                 e.printStackTrace();\r
145                         }\r
146                         processed[0]++;\r
147                         return true;\r
148                 }, null);\r
149 \r
150                 if (con[0] != null)\r
151                         con[0].close();\r
152         }\r
153 \r
154 }\r