Subversion Repository Public Repository

ConnectionOdbcSdk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
´╗┐using System;
using System.Data;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Cisco.UnityConnection.OdbcSdk;

namespace UnityConnectionServerOdbcTests
{
    [TestClass]
    public class UnityConnectionServerOdbcIntegrationTest : BaseIntegrationTests
    {

        #region Fields and Properties

        private static bool _errorRaised;

        #endregion


        #region Additional test attributes

        //Use ClassInitialize to run code before running the first test in the class
        [ClassInitialize]
        public new static void MyClassInitialize(TestContext testContext)
        {
            BaseIntegrationTests.MyClassInitialize(testContext);
            Server.ErrorEvents += ServerOnErrorEvents;
        }

        private static void ServerOnErrorEvents(object sender, LogEventArgs logEventArgs)
        {
            _errorRaised = true;
        }

        #endregion


        [TestMethod]
        public void PrintServerStringPropertiesTests()
        {
            Assert.IsTrue(!string.IsNullOrEmpty(Server.CurrentDatabaseName), "CurrentDatabaseName value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.DatabaseLoginName), "DatabaseLoginName value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.DatabaseLoginPassword), "DatabaseLoginPassword value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.DatabaseServerIpAddress), "DatabaseServerIpAddress value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.DatabaseServerName), "DatabaseServerName value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.PrimaryLocationDisplayName), "PrimaryLocationDisplayName value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.PrimaryLocationDomainName), "PrimaryLocationDomainName value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.PrimaryLocationObjectId), "PrimaryLocationObjectId value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.PrimaryLocationServerAddress), "PrimaryLocationServerAddress value empty");
            Assert.IsTrue(!string.IsNullOrEmpty(Server.UnityVersionString), "UnityVersionString value empty");
        }

        [TestMethod]
        public void IntegerPropertyTests()
        {
            Console.WriteLine("Neighbor count=" + Server.NeighborLocations.Count);
            Assert.IsTrue(Server.ServerConnectionStatus == ConnectionStatus.Connected, "DatabaseConnectionStatus value false");
            Assert.IsTrue(Server.UnityVersionMajor >0, "Version Major is not greater than 0:"+Server.UnityVersionMajor);
            Console.WriteLine(Server.UnityVersionRev);
            Console.WriteLine(Server.UnityVersionMinor);
            Console.WriteLine(Server.UnityVersionBuild);
            Assert.IsFalse(Server.UnityVersionIsCoRes,"Server reporting as CoRes which is no longer supported");
        }


        [TestMethod]
        public void ChangeDatabaseTests()
        {
            bool ret = Server.ChangeActiveDatabase("junk");
            Assert.IsFalse(ret,"Changing active database to 'junk' did not fail");
            Console.WriteLine("Current database name =" + Server.CurrentDatabaseName);

            ret = Server.ChangeActiveDatabase("UnityDynDb");
            Assert.IsTrue(ret, "Changing active database to 'UnityDynDb' failed");
            Console.WriteLine("Current database name =" + Server.CurrentDatabaseName);

            ret = Server.ChangeActiveDatabase("UnityMbxDb1");
            Assert.IsTrue(ret, "Changing active database to 'UnityMbxDb1' failed");
            Console.WriteLine("Current database name =" + Server.CurrentDatabaseName);

            ret = Server.ChangeActiveDatabase("UnityRptDb");
            Assert.IsTrue(ret, "Changing active database to 'UnityRptDb' failed");
            Console.WriteLine("Current database name =" + Server.CurrentDatabaseName);

            ret = Server.ChangeActiveDatabase("UnityDirDb");
            Assert.IsTrue(ret, "Changing active database to 'UnityDirDb' failed");
            Console.WriteLine("Current database name =" + Server.CurrentDatabaseName);
        }

        [TestMethod]
        public void LanguageInstalledTest()
        {
            bool ret = Server.IsLanguageInstalled(1033);
            Assert.IsTrue(ret,"1033 language not installed, should always be by default");

            ret = Server.IsLanguageInstalled("1033");
            Assert.IsTrue(ret, "string version of 1033 language not installed, should always be by default");

            ret = Server.IsLanguageInstalled("7777");
            Assert.IsFalse(ret, "Invalid 7777 as string language reported as installed");

            ret = Server.IsLanguageInstalled(7777);
            Assert.IsFalse(ret, "invalid 7777 langauge Id reported as installed");
        }

        [TestMethod]
        public void DefaultLanguageTest()
        {
            Console.WriteLine("Default language=" + Server.GetDefaultLanguage());
            int iLang = Server.GetDefaultLanguage();
            Assert.IsTrue(iLang>0,"Default language Id invalid:"+iLang);
        }


        [TestMethod]
        public void VersionCheckTests()
        {
            Assert.IsTrue(Server.IsConnectionVersionAtLeast(1, 0, 0, 0),"Version is not reporting as greater than 1.0.0.0");
            Assert.IsFalse(Server.IsConnectionVersionAtLeast(22, 0, 0, 0), "Version is not reporting as less than 22.0.0.0");
        }

        [TestMethod]
        public void LargeDbOperationPause()
        {
            Server.LargeDbOperationPause(true);
        }

        [TestMethod]
        public void LoginLogoutTest()
        {
            UnityConnectionServerOdbcSdk oServer = new UnityConnectionServerOdbcSdk("Test");
            var res=oServer.LoginDatabaseBlocking(Server.DatabaseServerName,Server.DatabaseLoginName, Server.DatabaseLoginPassword);
            Assert.IsTrue(res.Successful,"Failed to log in to second instance of server:"+res);

            oServer.LogoutBlocking();
        }

        [TestMethod]
        public void Login_InvalidServerName_Failure()
        {
            UnityConnectionServerOdbcSdk oServer = new UnityConnectionServerOdbcSdk("Test");
            var res = oServer.LoginDatabaseBlocking("junk", Server.DatabaseLoginName, Server.DatabaseLoginPassword);
            Assert.IsFalse(res.Successful, "Invalid server name should return login failure");
        }

        [TestMethod]
        public void Login_InvalidLoginName_Failure()
        {
            UnityConnectionServerOdbcSdk oServer = new UnityConnectionServerOdbcSdk("Test");
            var res = oServer.LoginDatabaseBlocking(Server.DatabaseServerName, "invalid", Server.DatabaseLoginPassword);
            Assert.IsFalse(res.Successful, "Invalid login name should return login failure");
        }

        [TestMethod]
        public void Login_InvalidPassword_Failure()
        {
            UnityConnectionServerOdbcSdk oServer = new UnityConnectionServerOdbcSdk("Test");
            var res = oServer.LoginDatabaseBlocking(Server.DatabaseServerName, Server.DatabaseLoginName, "invalid");
            Assert.IsFalse(res.Successful, "Invalid login name should return login failure");
        }

        
        [TestMethod]
        public void UpdateStatisticsTest_Success()
        {
            var res = Server.UpdateStatisticsForMailstore("UnityDynDb");
            Assert.IsTrue(res.Successful, "Failed updating UnityDynDb statistics:" + res);
        }

        [TestMethod]
        public void UpdateStatisticsTest_InvalidDbNameFailure()
        {
            var res = Server.UpdateStatisticsForMailstore("Junk");
            Assert.IsFalse(res.Successful,"Updating statistics on invalid database name should fail:"+res);
        }

        [TestMethod]
        public void UpdateStatisticsTest_ValidDbNameNotPresentFailure()
        {
            var res = Server.UpdateStatisticsForMailstore("UnityMbxDb6");
            Assert.IsFalse(res.Successful, "Updating statistics on UnityMbxDb6 database name should fail:" + res);
        }

        [TestMethod]
        public void IsLanguageInstalled_NonNumericLanguageCode()
        {
            bool ret = Server.IsLanguageInstalled("xyz");
            Assert.IsFalse(ret,"false should be returned if language code cannot be parsed as an int");
        }

        [TestMethod]
        public void FillDataTableBlocking_InvalidQuery()
        {
            DataTable oTable;
            var res = Server.FillDataTableBlocking("invalid query string", out oTable);
            Assert.IsFalse(res.Successful, "FillDataTableBlocking call should fail with invalid query");
        }

        [TestMethod]
        public void GreetingsAdministrator_Success()
        {
            Assert.IsFalse(string.IsNullOrEmpty(Server.GreetingsAdministratorRoleObjectId),
                "GreetingsAdministratorRoleObjectId is blank");
        }



    }
}

Commits for ConnectionOdbcSdk/trunk/ConnectionServerOdbcIntegrationTests/IntegrationTests/ConnectionServerOdbcIntegrationTests.cs

Diff revisions: vs.
Revision Author Commited Message
21 Diff Diff jlindborg picture jlindborg Wed 08 Jan, 2014 01:22:54 +0000

Final rework of framework – simplified class structure to remove seperate DBFunctions reference and have all items under the UnityConnectionServerOdbcSdk service which uses pass through calls to the DB specific methods so clients have just a single class instance to deal with.

20 Diff Diff jlindborg picture jlindborg Tue 07 Jan, 2014 03:22:54 +0000

Finished basic reorg of interface/class structure to optimize for unit test construction.

19 Diff Diff jlindborg picture jlindborg Mon 06 Jan, 2014 22:26:38 +0000

renaming and reorganizing unit tests a bit.

15 Diff Diff jlindborg picture jlindborg Sun 08 Sep, 2013 17:27:35 +0000

2.0.3
Changed class name to be CiscoUnityConnectionServerOdbc
Updated to support 32 or 64 bit projects
Changed order of parameters on login methods at server and DB functions class to match.
Started testing for NuGet package deployment.
Dropped in holder for dev guide docs

12 Diff Diff jlindborg picture jlindborg Thu 05 Sep, 2013 01:56:48 +0000

more unit test work.

11 Diff Diff jlindborg picture jlindborg Mon 02 Sep, 2013 23:29:09 +0000

continuing to work on unit tests -

10 Diff Diff jlindborg picture jlindborg Mon 02 Sep, 2013 18:54:54 +0000

More unit and integration test work

9 jlindborg picture jlindborg Fri 30 Aug, 2013 19:10:27 +0000

more unit and integration test setup work.