public void ShouldWork() { var query = new SubscriptionsByTopic(base.connectionString); query.Execute(tc.Id.Value) .Should().Contain(subs1) .And.Not.Contain(subs2); }
public static void AddUser(UserSubscription user) { // 获取某个主题订阅 SubscriptionsByTopic subscriptionsByTopic; SubscriptionsByTopic.TryGetValue(user.Topic, out subscriptionsByTopic); // 如果主题不存在,新添加 if (subscriptionsByTopic == null) { subscriptionsByTopic = new SubscriptionsByTopic() { Topic = user.Topic }; var wasAdded = SubscriptionsByTopic.TryAdd(user.Topic, subscriptionsByTopic); } // 获取某个主题用户的全部订阅 SubscriptionsByUser subscriptionsByUser; subscriptionsByTopic.SubscriptionsByUser.TryGetValue(user.ConnectionId, out subscriptionsByUser); // 主题用户不存在,新添加 if (subscriptionsByUser == null) { subscriptionsByUser = new SubscriptionsByUser() { ConnectionId = user.ConnectionId, }; var wasAdded = subscriptionsByTopic.SubscriptionsByUser.TryAdd(user.ConnectionId, subscriptionsByUser); } // 用户订阅值同步 subscriptionsByUser.SubscriptionsByTopic.AddOrUpdate(user.Topic, user, (key, oldValue) => oldValue = user); }