public void TimeRangeModelRepositoryAddShouldThrowExceptionWhenItemIsNull()
        {
            var repository = new TimeSliceModelRepository <IStatistic>();

            Action act = () => { repository.Add(null); };

            act.Should().Throw <ModelRepositoryAddException>();
        }
        public void TimeRangeModelRepositoryAddShouldThrowExceptionWhenItemExists()
        {
            var item1 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue));
            var item2 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue));

            var repository = new TimeSliceModelRepository <IStatistic>();

            Action act = () => { repository.Add(item1); repository.Add(item2); };

            act.Should().Throw <ModelRepositoryAddException>();
        }
        public void TimeRangeModelRepositoryAddShouldAddNewItems()
        {
            var item1 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue));
            var item2 = new Statistic(new AllTimeSlice(DateTime.Parse("2018-01-01 00:00:00"), DateTime.Parse("2018-03-31 00:00:00")));

            var repository = new TimeSliceModelRepository <IStatistic>();

            repository.Add(item1);
            repository.Add(item2);

            repository.GetAll().Should().HaveCount(2);
        }
        public void TimeRangeModelRepositoryGetByIdShouldReturnCorrectObjectBasedOnKey()
        {
            var item1 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue));
            var item2 = new Statistic(new AllTimeSlice(DateTime.Parse("2018-01-01 00:00:00"), DateTime.Parse("2018-03-31 00:00:00")));

            var repository = new TimeSliceModelRepository <IStatistic>();

            repository.Add(item1);
            repository.Add(item2);

            var result = repository.GetById(new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue)));

            result.Should().Be(item1);
        }
        public void TimeRangeModelRepositoryDeleteShouldDeleteCorrectTimeRange()
        {
            var item1 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue))
            {
                AmountPositionTrades = 1
            };
            var item2 = new Statistic(new AllTimeSlice(DateTime.Parse("2018-01-01 00:00:00"), DateTime.Parse("2018-03-31 00:00:00")));

            var repository = new TimeSliceModelRepository <IStatistic>();

            repository.Add(item1);
            repository.Add(item2);

            repository.Delete(item2);
            repository.GetById(new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue))).Should().NotBeNull();
            repository.GetAll().Should().HaveCount(1);
        }
        public void TimeRangeModelRepositoryUpdateShouldUpdateCorrectTimeRange()
        {
            var item1 = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue))
            {
                AmountPositionTrades = 1
            };
            var item2 = new Statistic(new AllTimeSlice(DateTime.Parse("2018-01-01 00:00:00"), DateTime.Parse("2018-03-31 00:00:00")));

            var repository = new TimeSliceModelRepository <IStatistic>();

            repository.Add(item1);
            repository.Add(item2);

            var item1Update = new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue))
            {
                AmountPositionTrades = 2
            };

            repository.Update(item1Update);
            repository.GetById(new Statistic(new AllTimeSlice(DateTime.MinValue, DateTime.MaxValue))).AmountPositionTrades.Should()
            .Be(2);
        }