Example #1
0
        public async Task GetBucketAsync_Disposed_Exception()
        {
            // Arrange

            var clusterProvider = new Mock <IClusterProvider>();

            var provider = new BucketProvider(clusterProvider.Object);

            provider.Dispose();

            // Act/Assert

            var ex = await Assert.ThrowsAsync <ObjectDisposedException>(() => provider.GetBucketAsync("bucket1").AsTask());

            Assert.Equal(nameof(BucketProvider), ex.ObjectName);
        }
        public void Dispose_DisposesBuckets()
        {
            // Arrange

            var bucket1 = new Mock <IBucket>();

            bucket1.Setup(m => m.Dispose());

            var bucket2 = new Mock <IBucket>();

            bucket2.Setup(m => m.Dispose());

            var cluster = new Mock <ICluster>();

            cluster
            .Setup(m => m.OpenBucket("bucket1"))
            .Returns(bucket1.Object);
            cluster
            .Setup(m => m.OpenBucket("bucket2"))
            .Returns(bucket2.Object);
            cluster
            .SetupGet(m => m.Configuration)
            .Returns(new ClientConfiguration()
            {
                BucketConfigs = new Dictionary <string, BucketConfiguration>()
            });

            var clusterProvider = new Mock <IClusterProvider>();

            clusterProvider
            .Setup(m => m.GetCluster())
            .Returns(cluster.Object);

            var provider = new BucketProvider(clusterProvider.Object);

            provider.GetBucket("bucket1");
            provider.GetBucket("bucket2");

            // Act

            provider.Dispose();

            // Assert

            bucket1.Verify(m => m.Dispose(), Times.AtLeastOnce);
            bucket2.Verify(m => m.Dispose(), Times.AtLeastOnce);
        }
        public void GetBucket_WithPassword_OpensBucketWithPasswordNotConfig()
        {
            // Arrange

            var bucket1 = new Mock <IBucket>();

            var cluster = new Mock <ICluster>();

            cluster
            .Setup(m => m.OpenBucket("bucket1"))
            .Returns(bucket1.Object);
            cluster
            .SetupGet(m => m.Configuration)
            .Returns(new ClientConfiguration()
            {
                BucketConfigs = new Dictionary <string, BucketConfiguration>
                {
                    {
                        "bucket1",
                        new BucketConfiguration()
                        {
                            BucketName = "bucket1",
                            Password   = "******"
                        }
                    }
                }
            });

            var clusterProvider = new Mock <IClusterProvider>();

            clusterProvider
            .Setup(m => m.GetCluster())
            .Returns(cluster.Object);

            var provider = new BucketProvider(clusterProvider.Object);

            // Act

            provider.GetBucket("bucket1", "password");

            // Assert

            cluster.Verify(m => m.OpenBucket("bucket1", "password"), Times.Once);
        }
Example #4
0
        public async Task GetBucket_FirstTimeFails_OpensAgain()
        {
            // Arrange

            var bucket1 = new Mock <IBucket>();

            var cluster = new Mock <ICluster>();

            cluster
            .SetupSequence(m => m.BucketAsync("bucket1"))
            .Returns(() => new ValueTask <IBucket>(Task.Run(async Task <IBucket> () =>
            {
                await Task.Delay(10);

                throw new InvalidOperationException("test");
            })))
            .ReturnsAsync(bucket1.Object);

            var clusterProvider = new Mock <IClusterProvider>();

            clusterProvider
            .Setup(m => m.GetClusterAsync())
            .ReturnsAsync(cluster.Object);

            var provider = new BucketProvider(clusterProvider.Object);

            var firstEx = await Assert.ThrowsAsync <InvalidOperationException>(() =>
            {
                return(provider.GetBucketAsync("bucket1").AsTask());
            });

            Assert.Equal("test", firstEx.Message);

            // Act

            var result = await provider.GetBucketAsync("bucket1");

            // Assert

            Assert.Equal(bucket1.Object, result);
            cluster.Verify(m => m.BucketAsync("bucket1"), Times.Exactly(2));
        }
Example #5
0
        public async Task DisposeAsync_DisposesBuckets()
        {
            // Arrange

            var bucket1 = new Mock <IBucket>();

            bucket1.Setup(m => m.Dispose());

            var bucket2 = new Mock <IBucket>();

            bucket2.Setup(m => m.Dispose());

            var cluster = new Mock <ICluster>();

            cluster
            .Setup(m => m.BucketAsync("bucket1"))
            .ReturnsAsync(bucket1.Object);
            cluster
            .Setup(m => m.BucketAsync("bucket2"))
            .ReturnsAsync(bucket2.Object);

            var clusterProvider = new Mock <IClusterProvider>();

            clusterProvider
            .Setup(m => m.GetClusterAsync())
            .ReturnsAsync(cluster.Object);

            var provider = new BucketProvider(clusterProvider.Object);
            await provider.GetBucketAsync("bucket1");

            await provider.GetBucketAsync("bucket2");

            // Act

            await provider.DisposeAsync();

            // Assert

            bucket1.Verify(m => m.DisposeAsync(), Times.AtLeastOnce);
            bucket2.Verify(m => m.DisposeAsync(), Times.AtLeastOnce);
        }
        public void GetBucket_MultipleTimes_ReturnsFirstOpenBucket()
        {
            // Arrange

            var bucket1 = new Mock <IBucket>();

            var cluster = new Mock <ICluster>();

            cluster
            .Setup(m => m.OpenBucket("bucket1"))
            .Returns(bucket1.Object);
            cluster
            .SetupGet(m => m.Configuration)
            .Returns(new ClientConfiguration()
            {
                BucketConfigs = new Dictionary <string, BucketConfiguration>()
            });

            var clusterProvider = new Mock <IClusterProvider>();

            clusterProvider
            .Setup(m => m.GetCluster())
            .Returns(cluster.Object);

            var provider = new BucketProvider(clusterProvider.Object);

            // Act

            provider.GetBucket("bucket1");
            var result = provider.GetBucket("bucket1");

            // Assert

            Assert.Equal(bucket1.Object, result);
            cluster.Verify(m => m.OpenBucket("bucket1"), Times.Once);
        }
 public void ShouldCallIsItemContainedWithinBucket([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item item)
 {
     current.IsItemContainedWithinBucket(item).Returns(true);
     sut.IsItemContainedWithinBucket(item).Should().BeTrue();
 }
 public void ShouldCallGetFacets([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, List <SearchStringModel> searchQuery, string locationFilter, IList <IEnumerable <SitecoreUIFacet> > expected)
 {
     current.GetFacets(searchQuery, locationFilter).Returns(expected);
     sut.GetFacets(searchQuery, locationFilter).Should().BeSameAs(expected);
 }
 public void SwitchBucketProvider([Frozen] BucketProvider provider, BucketProviderSwitcher switcher, Item source, Item target)
 {
     BucketManager.MoveItemIntoBucket(source, target);
     provider.Received().MoveItemIntoBucket(source, target);
 }
 public void ShouldCallCopyItem([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item source, Item target, bool deep)
 {
     sut.CopyItem(source, target, deep);
     current.Received().CopyItem(source, target, deep);
 }
 public void ShouldCallCloneItem([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item source, Item target, bool deep, Item expected)
 {
     current.CloneItem(source, target, deep).Returns(expected);
     sut.CloneItem(source, target, deep).Should().BeSameAs(expected);
 }
 public void ShouldCallAddSearchTabToItem([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item item)
 {
     sut.AddSearchTabToItem(item);
     current.Received().AddSearchTabToItem(item);
 }
 public void ShouldCallSyncBucket([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item item)
 {
     sut.SyncBucket(item);
     current.Received().SyncBucket(item);
 }
 public void ShouldCallMoveItemIntoBucket([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item source, Item target)
 {
     sut.MoveItemIntoBucket(source, target);
     current.Received().MoveItemIntoBucket(source, target);
 }
 public void ShouldCallIsTemplateBucketable([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, ID templateId, Database database)
 {
     current.IsTemplateBucketable(templateId, database).Returns(true);
     sut.IsTemplateBucketable(templateId, database).Should().BeTrue();
 }
 public void ShouldCallCreateBucket([Frozen] BucketProvider current, BucketProviderSwitcher switcher, SwitchingBucketProvider sut, Item item, Action <Item> callBack)
 {
     sut.CreateBucket(item, callBack);
     current.Received().CreateBucket(item, callBack);
 }
 public void SutSwitchesSwitcherCurrentValue([Frozen] BucketProvider provider, BucketProviderSwitcher sut)
 {
     BucketProviderSwitcher.CurrentValue.Should().BeSameAs(provider);
 }