public void Save_IdSet()
        {
            var categoryRepository =
                new CategoryRepository(new DatabaseManager(new WindowsSqliteConnectionFactory(),
                    new MvxWpfFileStore(FILE_ROOT)));
            var testCategory = new Fixture().Create<CategoryViewModel>();
            testCategory.Id = 0;

            try
            {
                categoryRepository.Save(testCategory);
                testCategory.Id.ShouldBeGreaterThan(0);
            }
            finally
            {
                categoryRepository.Delete(testCategory);
            }
        }
        public void Save_ExistingEntryUpdated()
        {
            var categoryRepository =
                new CategoryRepository(new DatabaseManager(new WindowsSqliteConnectionFactory(),
                    new MvxWpfFileStore(FILE_ROOT)));
            var testCategory = new Fixture().Create<CategoryViewModel>();
            testCategory.Id = 0;

            try
            {
                categoryRepository.Save(testCategory);
                categoryRepository.FindById(testCategory.Id).ShouldNotBeNull();

                const string updatedName = "FOOOOOOOOOO";
                testCategory.Name = updatedName;

                categoryRepository.Save(testCategory);
                categoryRepository.FindById(testCategory.Id).Name.ShouldBe(updatedName);
            }
            finally
            {
                categoryRepository.Delete(testCategory);
            }
        }
        public void GetList_WithoutFilter()
        {
            var categoryRepository =
                new CategoryRepository(new DatabaseManager(new WindowsSqliteConnectionFactory(),
                    new MvxWpfFileStore(FILE_ROOT)));
            var testCategory = new Fixture().Create<CategoryViewModel>();
            testCategory.Id = 0;

            try
            {
                categoryRepository.Save(testCategory);

                var selectedAccount = categoryRepository.GetList().First();

                selectedAccount.Id.ShouldBe(testCategory.Id);
                selectedAccount.Name.ShouldBe(testCategory.Name);
            }
            finally
            {
                categoryRepository.Delete(testCategory);
            }
        }
        public void FindById_AccountDeleted()
        {
            var categoryRepository =
                new CategoryRepository(new DatabaseManager(new WindowsSqliteConnectionFactory(),
                    new MvxWpfFileStore(FILE_ROOT)));

            var testCategory = new Fixture().Create<CategoryViewModel>();
            testCategory.Id = 0;

            categoryRepository.Save(testCategory);
            var selected = categoryRepository.FindById(testCategory.Id);

            selected.ShouldNotBeNull();
            selected.ShouldBeInstanceOf<CategoryViewModel>();

            categoryRepository.Delete(testCategory);
            categoryRepository.FindById(testCategory.Id).ShouldBeNull();
        }
        public void GetList_WithFilter()
        {
            var categoryRepository =
                new CategoryRepository(new DatabaseManager(new WindowsSqliteConnectionFactory(),
                    new MvxWpfFileStore(FILE_ROOT)));
            var testCategory = new Fixture().Create<CategoryViewModel>();
            testCategory.Id = 0;

            try
            {
                categoryRepository.Save(testCategory);

                categoryRepository.GetList(x => x.Id == testCategory.Id).First().Id.ShouldBe(testCategory.Id);
                categoryRepository.GetList(x => x.Id == 99).FirstOrDefault().ShouldBeNull();
            }
            finally
            {
                categoryRepository.Delete(testCategory);
            }
        }