Ejemplo n.º 1
0
        public async Task TestProjectSynchronization()
        {
            var code = @"class Test { void Method() { } }";

            using (var workspace = TestWorkspace.CreateCSharp(code))
            {
                var project = workspace.CurrentSolution.Projects.First();

                // build checksum
                await project.State.GetChecksumAsync(CancellationToken.None);

                var map = project.GetAssetMap();

                var sessionId = 0;
                var storage   = new AssetStorage();
                var source    = new TestAssetSource(storage, map);

                var service = new AssetService(sessionId, storage);
                await service.SynchronizeProjectAssetsAsync(SpecializedCollections.SingletonEnumerable(await project.State.GetChecksumAsync(CancellationToken.None)), CancellationToken.None);

                foreach (var kv in map)
                {
                    Assert.True(storage.TryGetAsset(kv.Key, out object data));
                }
            }
        }
Ejemplo n.º 2
0
        public async Task TestSolutionSynchronization()
        {
            var code = @"class Test { void Method() { } }";

            using (var workspace = TestWorkspace.CreateCSharp(code))
            {
                var solution = workspace.CurrentSolution;

                // build checksum
                await solution.State.GetChecksumAsync(CancellationToken.None);

                var map = solution.GetAssetMap();

                var sessionId = 0;
                var storage   = new AssetStorage();
                var source    = new TestAssetSource(storage, map);

                var service = new AssetService(sessionId, storage);
                await service.SynchronizeSolutionAssetsAsync(await solution.State.GetChecksumAsync(CancellationToken.None), CancellationToken.None);

                foreach (var kv in map)
                {
                    Assert.True(storage.TryGetAsset(kv.Key, out object data));
                }
            }
        }
Ejemplo n.º 3
0
        public void TestCreation()
        {
            var storage = new AssetStorage();
            var source  = new TestAssetSource(storage);

            var stored = storage.AssetSource;

            Assert.Equal(source, stored);
        }
Ejemplo n.º 4
0
        private static async Task <SolutionService> GetSolutionServiceAsync(Solution solution, Dictionary <Checksum, object> map = null)
        {
            // make sure checksum is calculated
            await solution.State.GetChecksumAsync(CancellationToken.None);

            map = map ?? new Dictionary <Checksum, object>();
            solution.AppendAssetMap(map);

            var sessionId = 0;
            var storage   = new AssetStorage();
            var source    = new TestAssetSource(storage, map);
            var service   = new SolutionService(new AssetService(sessionId, storage));

            return(service);
        }
Ejemplo n.º 5
0
        public void TestCreation()
        {
            var sessionId = 0;

            var storage = new AssetStorage();
            var source  = new TestAssetSource(storage, sessionId);

            var stored = storage.TryGetAssetSource(sessionId);

            Assert.Equal(source, stored);

            storage.UnregisterAssetSource(sessionId);

            var none = storage.TryGetAssetSource(sessionId);

            Assert.Null(none);
        }
Ejemplo n.º 6
0
        public async Task TestAssets()
        {
            var sessionId = 0;
            var checksum  = Checksum.Create(WellKnownSynchronizationKind.Null, ImmutableArray.CreateRange(Guid.NewGuid().ToByteArray()));
            var data      = new object();

            var storage = new AssetStorage();
            var source  = new TestAssetSource(storage, checksum, data);

            var service = new AssetService(sessionId, storage);
            var stored  = await service.GetAssetAsync <object>(checksum, CancellationToken.None);

            Assert.Equal(data, stored);

            var stored2 = await service.GetAssetsAsync <object>(new[] { checksum }, CancellationToken.None);

            Assert.Equal(1, stored2.Count);

            Assert.Equal(checksum, stored2[0].Item1);
            Assert.Equal(data, stored2[0].Item2);
        }
Ejemplo n.º 7
0
        public async Task TestAssets()
        {
            var sessionId = 0;
            var checksum  = new Checksum(Guid.NewGuid().ToByteArray());
            var data      = new object();

            var storage = new AssetStorage();
            var source  = new TestAssetSource(storage, sessionId, checksum, data);

            var service = new AssetService(sessionId, storage);
            var stored  = await service.GetAssetAsync <object>(checksum, CancellationToken.None);

            Assert.Equal(data, stored);

            var stored2 = await service.GetAssetsAsync <object>(new[] { checksum }, CancellationToken.None);

            Assert.Equal(1, stored2.Count);

            Assert.Equal(checksum, stored2[0].Item1);
            Assert.Equal(data, stored2[0].Item2);
        }
Ejemplo n.º 8
0
        public async Task TestSolutionSynchronization()
        {
            var code = @"class Test { void Method() { } }";

            using (var workspace = TestWorkspace.CreateCSharp(code))
            {
                var solution = workspace.CurrentSolution;

                // build checksum
                await solution.State.GetChecksumAsync(CancellationToken.None);

                var map = await solution.GetAssetMapAsync(CancellationToken.None);

                var sessionId = 0;
                var storage   = new AssetStorage();
                var source    = new TestAssetSource(storage, map);

                var service = new AssetService(sessionId, storage, new RemoteWorkspace().Services.GetService <ISerializerService>());
                await service.SynchronizeSolutionAssetsAsync(await solution.State.GetChecksumAsync(CancellationToken.None), CancellationToken.None);

                TestUtils.VerifyAssetStorage(map, storage);
            }
        }
Ejemplo n.º 9
0
        public async Task TestProjectSynchronization()
        {
            var code = @"class Test { void Method() { } }";

            using (var workspace = TestWorkspace.CreateCSharp(code))
            {
                var project = workspace.CurrentSolution.Projects.First();

                // build checksum
                await project.State.GetChecksumAsync(CancellationToken.None);

                var map = await project.GetAssetMapAsync(CancellationToken.None);

                var sessionId = 0;
                var storage   = new AssetStorage();
                var source    = new TestAssetSource(storage, map);

                var service = new AssetService(sessionId, storage, new RemoteWorkspace().Services.GetService <ISerializerService>());
                await service.SynchronizeProjectAssetsAsync(SpecializedCollections.SingletonEnumerable(await project.State.GetChecksumAsync(CancellationToken.None)), CancellationToken.None);

                TestUtils.VerifyAssetStorage(map, storage);
            }
        }