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); }
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); }