public void ValidRestore()
            {
                DbSnapshotMgr target = new DbSnapshotMgr();
                DbConnectionInfo connectionInfo = new DbConnectionInfo(@".\", "SQL2012");
                string databaseName = "Certit";
                string snapshotDatabaseName = "Certit_120725";

                target.RestoreSnapshot(connectionInfo, databaseName, snapshotDatabaseName);
            }
            public void SnapshotDbIsNotASnapshot()
            {
                DbSnapshotMgr target = new DbSnapshotMgr();
                DbConnectionInfo connectionInfo = new DbConnectionInfo(@".\", "SQL2012");
                string databaseName = "Certit";
                string snapshotDatabaseName = "Certit";

                try
                {
                    target.RestoreSnapshot(connectionInfo, databaseName, snapshotDatabaseName);
                    Assert.Fail();
                }
                catch (ArgumentException ex)
                {
                    Assert.IsTrue(ex.Message.Contains("is not a snapshot"));
                }
            }
            public void InvalidDatabaseName()
            {
                DbSnapshotMgr target = new DbSnapshotMgr();
                DbConnectionInfo connectionInfo = new DbConnectionInfo();
                string databaseName = string.Empty;
                string snapshotDatabaseName = string.Empty;

                try
                {
                    target.RestoreSnapshot(connectionInfo, databaseName, snapshotDatabaseName);
                    Assert.Fail();
                }
                catch (ArgumentNullException ex)
                {
                    Assert.IsTrue(ex.Message.Contains("databaseName"));
                }
            }
            public void InvalidSnapshot()
            {
                DbSnapshotMgr target = new DbSnapshotMgr();
                DbConnectionInfo connectionInfo = new DbConnectionInfo(@".\", "SQL2012");
                string databaseName = "Certit";
                string snapshotDatabaseName = "UnknowSnapshotDb";

                try
                {
                    target.RestoreSnapshot(connectionInfo, databaseName, snapshotDatabaseName);
                    Assert.Fail();
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    Assert.IsTrue(ex.Message.Contains("does not exists"));
                }
            }
        public string Restore(string server, string instance, string database, string snapshot, string username = "", string password="")
        {
            DbSnapshotMgr mgr = new DbSnapshotMgr();
            DbConnectionInfo connectionInfo;
            if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password))
            {
                connectionInfo = new DbConnectionInfo(server, instance, username, password);
            }
            else
            {
                connectionInfo = new DbConnectionInfo(server, instance);
            }

            try
            {
                  mgr.RestoreSnapshot(connectionInfo,database,snapshot);
            }
            catch (Exception ex)
            {

                return ex.ToString();
            }

            return "Ok";
        }