Skip to content

Commit edee07d

Browse files
Merge pull request #4 from abhinavminhas/dev
Refactor QueryDB Solution
2 parents 0ccf69c + 4dd4ca7 commit edee07d

24 files changed

+978
-525
lines changed

QueryDB.Core.Tests/App.config

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<configuration>
33
<appSettings>
44
<add key="UseDocker" value="true" />
5-
<add key="OracleConnection" value="Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID = XE))); User Id = system;Password=__DB_PASSWORD__;" />
6-
<add key="SQLServerConnection" value="Data Source=(local);Initial Catalog=master;User Id=SA;Password=__DB_PASSWORD__;Encrypt=False;" />
5+
<add key="MSSQLConnection" value="Data Source=(local);Initial Catalog=master;User Id=SA;Password=__DB_PASSWORD__;Encrypt=False;" />
76
<add key="MySQLConnection" value="server=localhost;database=mysql;uid=root;pwd=__DB_PASSWORD__;" />
7+
<add key="OracleConnection" value="Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SID = XE))); User Id = sys;Password=__DB_PASSWORD__;DBA Privilege=SYSDBA" />
88
</appSettings>
99
</configuration>

QueryDB.Core.Tests/DatabaseTests.cs

Lines changed: 0 additions & 66 deletions
This file was deleted.

QueryDB.Core.Tests/MSSQLTests.cs

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using System.Linq;
3+
4+
namespace QueryDB.Core.Tests
5+
{
6+
[TestClass]
7+
public class MSSQLTests : TestBase
8+
{
9+
10+
#region MSSQL DB Tests
11+
12+
#region Smoke Tests
13+
14+
[TestMethod]
15+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS), TestCategory(SMOKE_TESTS)]
16+
public void Test_MSSQL_FetchData()
17+
{
18+
var selectSql = Queries.MSSQLQueries.Smoke.SelectSql;
19+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql);
20+
Assert.IsTrue(data.Count > 0);
21+
Assert.AreEqual("mssql", data[0].ReferenceData["current_database"]);
22+
23+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
24+
data = dbContext.FetchData(selectSql);
25+
Assert.IsTrue(data.Count > 0);
26+
Assert.AreEqual("mssql", data[0].ReferenceData["current_database"]);
27+
}
28+
29+
#endregion
30+
31+
#region Fetch Data Tests
32+
33+
[TestMethod]
34+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
35+
public void Test_MSSQL_FetchData_SelectQuery()
36+
{
37+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql;
38+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql);
39+
Assert.IsTrue(data.Count == 12);
40+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Name"] == "Benjamin");
41+
Assert.AreEqual("A009", agent.ReferenceData["Agent_Code"]);
42+
Assert.AreEqual("Benjamin", agent.ReferenceData["Agent_Name"]);
43+
Assert.AreEqual("Hampshair", agent.ReferenceData["Working_Area"]);
44+
Assert.AreEqual("0.11", agent.ReferenceData["Commission"]);
45+
Assert.AreEqual("008-22536178", agent.ReferenceData["Phone_No"]);
46+
Assert.AreEqual("", agent.ReferenceData["Country"]);
47+
}
48+
49+
[TestMethod]
50+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
51+
public void Test_MSSQL_FetchData_SelectQuery_UpperCaseKeys()
52+
{
53+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql;
54+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
55+
Assert.IsTrue(data.Count == 12);
56+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin");
57+
Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]);
58+
Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]);
59+
Assert.AreEqual("Hampshair", agent.ReferenceData["WORKING_AREA"]);
60+
Assert.AreEqual("0.11", agent.ReferenceData["COMMISSION"]);
61+
Assert.AreEqual("008-22536178", agent.ReferenceData["PHONE_NO"]);
62+
Assert.AreEqual("", agent.ReferenceData["COUNTRY"]);
63+
}
64+
65+
[TestMethod]
66+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
67+
public void Test_MSSQL_FetchData_SelectQuery_Joins()
68+
{
69+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql_Join;
70+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql);
71+
Assert.IsTrue(data.Count == 34);
72+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006");
73+
Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]);
74+
Assert.AreEqual("Ivan", agent.ReferenceData["Agent_Name"]);
75+
Assert.AreEqual("C00006", agent.ReferenceData["Cust_Code"]);
76+
Assert.AreEqual("Shilton", agent.ReferenceData["Cust_Name"]);
77+
Assert.AreEqual("200104", agent.ReferenceData["Ord_Num"]);
78+
Assert.AreEqual("1500.00", agent.ReferenceData["Ord_Amount"]);
79+
Assert.AreEqual("500.00", agent.ReferenceData["Advance_Amount"]);
80+
Assert.AreEqual("SOD", agent.ReferenceData["Ord_Description"]);
81+
}
82+
83+
[TestMethod]
84+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
85+
public void Test_MSSQL_FetchData_SelectQuery_Joins_UpperCaseKeys()
86+
{
87+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql_Join;
88+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
89+
Assert.IsTrue(data.Count == 34);
90+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006");
91+
Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]);
92+
Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]);
93+
Assert.AreEqual("C00006", agent.ReferenceData["CUST_CODE"]);
94+
Assert.AreEqual("Shilton", agent.ReferenceData["CUST_NAME"]);
95+
Assert.AreEqual("200104", agent.ReferenceData["ORD_NUM"]);
96+
Assert.AreEqual("1500.00", agent.ReferenceData["ORD_AMOUNT"]);
97+
Assert.AreEqual("500.00", agent.ReferenceData["ADVANCE_AMOUNT"]);
98+
Assert.AreEqual("SOD", agent.ReferenceData["ORD_DESCRIPTION"]);
99+
}
100+
101+
[TestMethod]
102+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
103+
public void Test_MSSQL_FetchData_SelectQuery_Aliases()
104+
{
105+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql_Alias;
106+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql);
107+
Assert.IsTrue(data.Count == 34);
108+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006");
109+
Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]);
110+
Assert.AreEqual("Ivan", agent.ReferenceData["Agent"]);
111+
Assert.AreEqual("Torento", agent.ReferenceData["Agent_Location"]);
112+
Assert.AreEqual("C00006", agent.ReferenceData["Cust_Code"]);
113+
Assert.AreEqual("Shilton", agent.ReferenceData["Customer"]);
114+
Assert.AreEqual("Torento", agent.ReferenceData["Customer_Location"]);
115+
}
116+
117+
[TestMethod]
118+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
119+
public void Test_MSSQL_FetchData_SelectQuery_Aliases_UpperCaseKeys()
120+
{
121+
var selectSql = Queries.MSSQLQueries.SalesDB.SelectSql_Alias;
122+
var data = new DBContext(DB.MSSQL, MSSQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
123+
Assert.IsTrue(data.Count == 34);
124+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006");
125+
Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]);
126+
Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]);
127+
Assert.AreEqual("Torento", agent.ReferenceData["AGENT_LOCATION"]);
128+
Assert.AreEqual("C00006", agent.ReferenceData["CUST_CODE"]);
129+
Assert.AreEqual("Shilton", agent.ReferenceData["CUSTOMER"]);
130+
Assert.AreEqual("Torento", agent.ReferenceData["CUSTOMER_LOCATION"]);
131+
}
132+
133+
#endregion
134+
135+
#endregion
136+
137+
}
138+
}

QueryDB.Core.Tests/MySQLTests.cs

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using System.Linq;
3+
4+
namespace QueryDB.Core.Tests
5+
{
6+
[TestClass]
7+
public class MySQLTests : TestBase
8+
{
9+
10+
#region MySQL DB Tests
11+
12+
#region Smoke Tests
13+
14+
[TestMethod]
15+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS), TestCategory(SMOKE_TESTS)]
16+
public void Test_MySQL_FetchData()
17+
{
18+
var selectSql = Queries.MySQLQueries.Smoke.SelectSql;
19+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql);
20+
Assert.IsTrue(data.Count > 0);
21+
Assert.AreEqual("mysql", data[0].ReferenceData["current_database"]);
22+
23+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
24+
data = dbContext.FetchData(selectSql);
25+
Assert.IsTrue(data.Count > 0);
26+
Assert.AreEqual("mysql", data[0].ReferenceData["current_database"]);
27+
}
28+
29+
#endregion
30+
31+
#region Fetch Data Tests
32+
33+
[TestMethod]
34+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
35+
public void Test_MySQL_FetchData_SelectQuery()
36+
{
37+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql;
38+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql);
39+
Assert.IsTrue(data.Count == 12);
40+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Name"] == "Benjamin");
41+
Assert.AreEqual("A009", agent.ReferenceData["Agent_Code"]);
42+
Assert.AreEqual("Benjamin", agent.ReferenceData["Agent_Name"]);
43+
Assert.AreEqual("Hampshair", agent.ReferenceData["Working_Area"]);
44+
Assert.AreEqual("0.11", agent.ReferenceData["Commission"]);
45+
Assert.AreEqual("008-22536178", agent.ReferenceData["Phone_No"]);
46+
Assert.AreEqual("", agent.ReferenceData["Country"]);
47+
}
48+
49+
[TestMethod]
50+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
51+
public void Test_MySQL_FetchData_SelectQuery_UpperCaseKeys()
52+
{
53+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql;
54+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
55+
Assert.IsTrue(data.Count == 12);
56+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_NAME"] == "Benjamin");
57+
Assert.AreEqual("A009", agent.ReferenceData["AGENT_CODE"]);
58+
Assert.AreEqual("Benjamin", agent.ReferenceData["AGENT_NAME"]);
59+
Assert.AreEqual("Hampshair", agent.ReferenceData["WORKING_AREA"]);
60+
Assert.AreEqual("0.11", agent.ReferenceData["COMMISSION"]);
61+
Assert.AreEqual("008-22536178", agent.ReferenceData["PHONE_NO"]);
62+
Assert.AreEqual("", agent.ReferenceData["COUNTRY"]);
63+
}
64+
65+
[TestMethod]
66+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
67+
public void Test_MySQL_FetchData_SelectQuery_Joins()
68+
{
69+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql_Join;
70+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql);
71+
Assert.IsTrue(data.Count == 34);
72+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006");
73+
Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]);
74+
Assert.AreEqual("Ivan", agent.ReferenceData["Agent_Name"]);
75+
Assert.AreEqual("C00006", agent.ReferenceData["Cust_Code"]);
76+
Assert.AreEqual("Shilton", agent.ReferenceData["Cust_Name"]);
77+
Assert.AreEqual("200104", agent.ReferenceData["Ord_Num"]);
78+
Assert.AreEqual("1500.00", agent.ReferenceData["Ord_Amount"]);
79+
Assert.AreEqual("500.00", agent.ReferenceData["Advance_Amount"]);
80+
Assert.AreEqual("SOD", agent.ReferenceData["Ord_Description"]);
81+
}
82+
83+
[TestMethod]
84+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
85+
public void Test_MySQL_FetchData_SelectQuery_Joins_UpperCaseKeys()
86+
{
87+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql_Join;
88+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
89+
Assert.IsTrue(data.Count == 34);
90+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006");
91+
Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]);
92+
Assert.AreEqual("Ivan", agent.ReferenceData["AGENT_NAME"]);
93+
Assert.AreEqual("C00006", agent.ReferenceData["CUST_CODE"]);
94+
Assert.AreEqual("Shilton", agent.ReferenceData["CUST_NAME"]);
95+
Assert.AreEqual("200104", agent.ReferenceData["ORD_NUM"]);
96+
Assert.AreEqual("1500.00", agent.ReferenceData["ORD_AMOUNT"]);
97+
Assert.AreEqual("500.00", agent.ReferenceData["ADVANCE_AMOUNT"]);
98+
Assert.AreEqual("SOD", agent.ReferenceData["ORD_DESCRIPTION"]);
99+
}
100+
101+
[TestMethod]
102+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
103+
public void Test_MySQL_FetchData_SelectQuery_Aliases()
104+
{
105+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql_Alias;
106+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql);
107+
Assert.IsTrue(data.Count == 34);
108+
var agent = data.FirstOrDefault(X => X.ReferenceData["Agent_Code"] == "A004" && X.ReferenceData["Cust_Code"] == "C00006");
109+
Assert.AreEqual("A004", agent.ReferenceData["Agent_Code"]);
110+
Assert.AreEqual("Ivan", agent.ReferenceData["Agent"]);
111+
Assert.AreEqual("Torento", agent.ReferenceData["Agent_Location"]);
112+
Assert.AreEqual("C00006", agent.ReferenceData["Cust_Code"]);
113+
Assert.AreEqual("Shilton", agent.ReferenceData["Customer"]);
114+
Assert.AreEqual("Torento", agent.ReferenceData["Customer_Location"]);
115+
}
116+
117+
[TestMethod]
118+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
119+
public void Test_MySQL_FetchData_SelectQuery_Aliases_UpperCaseKeys()
120+
{
121+
var selectSql = Queries.MySQLQueries.SalesDB.SelectSql_Alias;
122+
var data = new DBContext(DB.MySQL, MySQLConnectionString).FetchData(selectSql, upperCaseKeys: true);
123+
Assert.IsTrue(data.Count == 34);
124+
var agent = data.FirstOrDefault(X => X.ReferenceData["AGENT_CODE"] == "A004" && X.ReferenceData["CUST_CODE"] == "C00006");
125+
Assert.AreEqual("A004", agent.ReferenceData["AGENT_CODE"]);
126+
Assert.AreEqual("Ivan", agent.ReferenceData["AGENT"]);
127+
Assert.AreEqual("Torento", agent.ReferenceData["AGENT_LOCATION"]);
128+
Assert.AreEqual("C00006", agent.ReferenceData["CUST_CODE"]);
129+
Assert.AreEqual("Shilton", agent.ReferenceData["CUSTOMER"]);
130+
Assert.AreEqual("Torento", agent.ReferenceData["CUSTOMER_LOCATION"]);
131+
}
132+
133+
#endregion
134+
135+
#endregion
136+
137+
}
138+
}

0 commit comments

Comments
 (0)