public
Description:
Homepage: http://www.iserviceoriented.com
Clone URL: git://github.com/jezell/iserviceoriented.git
100644 80 lines (61 sloc) 3.456 kb
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
using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
 
using IServiceOriented.ServiceBus.Data;
using IServiceOriented.ServiceBus.Listeners;
using IServiceOriented.ServiceBus.Dispatchers;
 
namespace IServiceOriented.ServiceBus.UnitTests
{
[TestFixture]
    public class TestSqlSubscriptionDb
    {
        public TestSqlSubscriptionDb()
        {
        }
 
[TestFixtureSetUp]
        public void Initialize()
        {
 
            _connectionString = String.Format(@"Data Source={0}; Initial Catalog={1}; Integrated Security=SSPI;", Config.SqlServer, Config.PersistenceDb);
            SqlSubscriptionDB.CreateDB(Config.SqlServer, Config.PersistenceDb, true);
        }
 
[TestFixtureTearDown]
        public void Cleanup()
        {
            SqlSubscriptionDB.DropConnectionsToDB(Config.SqlServer, Config.PersistenceDb);
            SqlSubscriptionDB.DropDB(Config.SqlServer, Config.PersistenceDb);
        }
 
        string _connectionString;
 
[Test]
        public void Can_Create_Remove_Update_And_Delete_Endpoints()
        {
            SqlSubscriptionDB db = new SqlSubscriptionDB(_connectionString, new Type[] { typeof(WcfProxyDispatcher) }, new Type[] { typeof(WcfServiceHostListener) }, new Type[] { typeof(PassThroughMessageFilter) });
 
            Assert.AreEqual(0, db.LoadListenerEndpoints().Count());
            Assert.AreEqual(0, db.LoadSubscriptionEndpoints().Count());
 
            ListenerEndpoint listener = new ListenerEndpoint(Guid.NewGuid(), "listener", "ListenerConfig", "http://localhost/test", typeof(IContract), new WcfServiceHostListener());
            db.CreateListener(listener);
 
            IEnumerable<ListenerEndpoint> listeners = db.LoadListenerEndpoints();
            Assert.AreEqual(1, listeners.Count());
 
            ListenerEndpoint savedListener = listeners.First();
 
            Assert.AreEqual(listener.Name, savedListener.Name);
            Assert.AreEqual(listener.Id, savedListener.Id);
            Assert.AreEqual(listener.ContractType, savedListener.ContractType);
            Assert.AreEqual(listener.ConfigurationName, savedListener.ConfigurationName);
            Assert.AreEqual(listener.Address, savedListener.Address);
 
            SubscriptionEndpoint subscription = new SubscriptionEndpoint(Guid.NewGuid(), "subscription", "SubscriptionConfig", "http://localhost/test/subscription", typeof(IContract), new WcfProxyDispatcher(), new PassThroughMessageFilter());
            db.CreateSubscription(subscription);
            
            IEnumerable<SubscriptionEndpoint> subscriptions = db.LoadSubscriptionEndpoints();
            Assert.AreEqual(1, subscriptions.Count());
 
            SubscriptionEndpoint savedSubscription = subscriptions.First();
 
            Assert.AreEqual(subscription.Name, savedSubscription.Name);
            Assert.AreEqual(subscription.Address, savedSubscription.Address);
            Assert.AreEqual(subscription.ConfigurationName, savedSubscription.ConfigurationName);
            Assert.AreEqual(subscription.ContractType, savedSubscription.ContractType);
            // TODO: Compare dispatchers
            Assert.AreEqual(subscription.Id, savedSubscription.Id);
            Assert.AreEqual(subscription.Filter.GetType(), savedSubscription.Filter.GetType());
            
 
            db.DeleteListener(listener.Id);
        }
    }
}