internal TestSequence(CancellationToken initialCancellationToken = default)
            {
                _streams    = new List <FakeWatchStream>();
                _client     = new FakeFirestoreListenClient(_streams, "projects/project/databases/db");
                _watchState = new FakeWatchState(TriggerCompletion);
                var db     = FirestoreDb.Create("project", "db", _client);
                var target = WatchStream.CreateTarget(db.Document("col/doc"));

                _scheduler  = new FakeScheduler();
                WatchStream = new WatchStream(_scheduler, _watchState, target, db, initialCancellationToken);
            }
        public void CreateTarget_Document()
        {
            var client   = new FakeFirestoreClient();
            var db       = FirestoreDb.Create("project", "db", client);
            var doc      = db.Document("col/doc");
            var expected = new Target
            {
                TargetId  = WatchStream.WatchTargetId,
                Documents = new DocumentsTarget {
                    Documents = { doc.Path }
                }
            };
            var actual = WatchStream.CreateTarget(doc);

            Assert.Equal(expected, actual);
        }
Exemplo n.º 3
0
        public static void AddDataAccessServices(this IServiceCollection services, string mongoUri)
        {
            client = new MongoClient(mongoUri);
            services.AddSingleton <IMongoClient, MongoClient>(s =>
            {
                return(client);
            });

            services.AddSingleton <PlaneRepository>();
            services.AddSingleton <CargoRepository>();
            services.AddSingleton <CityRepository>();

            var wa = new WatchStream();

            Task.Run(() => wa.StartCollectionWatch(client)).ConfigureAwait(false);
        }
        public void CreateTarget_Query()
        {
            var client   = new FakeFirestoreClient();
            var db       = FirestoreDb.Create("project", "db", client);
            var query    = db.Collection("col").Limit(10);
            var expected = new Target
            {
                TargetId = WatchStream.WatchTargetId,
                Query    = new QueryTarget
                {
                    Parent          = db.DocumentsPath,
                    StructuredQuery = new StructuredQuery
                    {
                        From = { new CollectionSelector {
                                     CollectionId = "col"
                                 } },
                        Limit = 10
                    }
                }
            };
            var actual = WatchStream.CreateTarget(query);

            Assert.Equal(expected, actual);
        }