Beispiel #1
0
        public void BuilderThrowsExceptionWhenStartWasNotCalled()
        {
            var builder = new BucketBuilder();

            Assert.Throws <InvalidOperationException>(() => builder.Build(false));
            Assert.Throws <InvalidOperationException>(() => builder.Build(true));
        }
Beispiel #2
0
        public void EventDoesNotFitIntoCreatedBucket(long firstEventTime, long eventTime)
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(firstEventTime);
            Assert.False(builder.IsFitIntoCurrentBucket(eventTime));
        }
Beispiel #3
0
        public void BuilderDoesNotCreateBucketWithNoEvents()
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(0);

            Assert.Null(builder.Build(false));
            Assert.Null(builder.Build(true));
        }
Beispiel #4
0
        public void PayloadsAreLoaded()
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(0);

            builder.AddEventWithPayload(new RealEvent(EventType.Start, 0), new Payload(1, 1, 1, 1));

            var bucket = builder.Build(true);

            Assert.False(bucket.NoPayloadsLoaded);
        }
Beispiel #5
0
        public void PayloadsAreNotLoaded()
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(0);

            builder.AddEvent(new RealEvent(EventType.Start, 0));

            var bucket = builder.Build(false);

            Assert.True(bucket.NoPayloadsLoaded);
        }
Beispiel #6
0
        public void EventsAndPayloadsCountEqual()
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(0);

            builder.AddEventWithPayload(new RealEvent(EventType.Start, 0), new Payload(1, 1, 1, 1));
            builder.AddEventWithPayload(new RealEvent(EventType.Stop, 10), new Payload(2, 2, 2, 2));

            var bucket = builder.Build(true);

            Assert.False(bucket.NoPayloadsLoaded);
            Assert.Equal(bucket.Payloads.Length, bucket.Events.Length);
        }
Beispiel #7
0
        public void BuilderCreatesBucketWithCorrectOffset(long eventTime, long expectedBucketOffset)
        {
            var builder = new BucketBuilder();

            builder.StartNewBucket(eventTime);

            builder.AddEvent(new RealEvent(EventType.Start, eventTime));

            var bucket = builder.Build(false, false);

            Assert.Equal(expectedBucketOffset, bucket.Offset);

            bucket = builder.Build(true, false);
            Assert.Equal(expectedBucketOffset, bucket.Offset);
        }
        private BucketContainer CreateBucketContainer(EventPair[] eventPairs, long offset)
        {
            var  buckets           = new List <Bucket>();
            var  builder           = new BucketBuilder();
            long previousEventTime = offset;

            foreach (var pair in eventPairs)
            {
                long startEventTime = pair.IsAbsoluteOffset ? offset + pair.Offset : previousEventTime + pair.Offset;
                var  startEvent     = new RealEvent(EventType.Start, startEventTime);
                var  stopEvent      = new RealEvent(EventType.Stop, startEventTime + pair.Duration * pair.DurationTimeUnit.GetTimeUnitDuration());


                if (!builder.IsFitIntoCurrentBucket(startEvent.Ticks))
                {
                    if (builder.HasEvents)
                    {
                        buckets.Add(builder.Build(false));
                    }

                    builder.StartNewBucket(startEvent.Ticks);
                }

                builder.AddEvent(startEvent);

                if (!builder.IsFitIntoCurrentBucket(stopEvent.Ticks))
                {
                    buckets.Add(builder.Build(false));
                    builder.StartNewBucket(stopEvent.Ticks);
                }

                builder.AddEvent(stopEvent);
                previousEventTime = stopEvent.Ticks;
            }

            var bucket = builder.Build(false);

            if (bucket != null)
            {
                buckets.Add(bucket);
            }

            return(new BucketContainer(buckets.ToArray(), 0));
        }
        /// <summary>
        /// Register an interface based on <see cref="INamedBucketProvider"/> which will be injected
        /// with a specific bucket name.
        /// </summary>
        /// <typeparam name="T">Interface inherited from <see cref="INamedBucketProvider"/>.  Must not add any members.</typeparam>
        /// <param name="services">The <see cref="IServiceCollection"/>.</param>
        /// <param name="bucketName">The name of the Couchbase bucket.</param>
        /// <param name="buildAction">Action to perform further configuration.</param>
        /// <returns>The <see cref="IServiceCollection"/>.</returns>
        public static IServiceCollection AddCouchbaseBucket <T>(this IServiceCollection services, string bucketName, Action <IBucketBuilder>?buildAction)
            where T : class, INamedBucketProvider
        {
            if (bucketName == null)
            {
                throw new ArgumentNullException(nameof(bucketName));
            }

            services.AddSingleton(typeof(T), NamedBucketProxyGenerator.Instance.GetProxy(typeof(T), bucketName));

            if (buildAction != null)
            {
                var builder = new BucketBuilder(services, typeof(T), false);

                buildAction.Invoke(builder);
            }

            return(services);
        }
 void Awake()
 {
     bucketBuilder = GetComponent<BucketBuilder>();
 }
Beispiel #11
0
 void Awake()
 {
     bucketBuilder = GetComponent <BucketBuilder>();
 }