Beispiel #1
0
        public void TestGetDataWithStat()
        {
            using (var requestHandler = new TestRequestHandler())
                using (var client = new RingMasterClient(requestHandler))
                {
                    string path         = this.GetRandomString();
                    var    watcher      = new TestWatcher(this.GetRandomInt());
                    byte[] expectedData = this.GetRandomData();
                    var    expectedStat = new Stat()
                    {
                        Version = this.GetRandomInt()
                    };

                    requestHandler.Implementation = request =>
                    {
                        Assert.IsTrue(request is RequestGetData);
                        var getDataRequest = (RequestGetData)request;
                        Assert.AreEqual(path, getDataRequest.Path);
                        Assert.AreEqual(watcher.Id, getDataRequest.Watcher.Id);

                        return(new RequestResponse()
                        {
                            ResultCode = (int)RingMasterException.Code.Ok,
                            Content = expectedData,
                            Stat = expectedStat
                        });
                    };

                    var dataAndStat = client.GetDataWithStat(path, watcher).Result;
                    Assert.AreEqual(expectedStat.Version, dataAndStat.Item1.Version);
                    CollectionAssert.AreEqual(expectedData, dataAndStat.Item2);
                }
        }