Пример #1
0
        public void AddToCsvRepoWorksWhenFileDoesNotExist(MockPoco input)
        {
            // Arrange

            var fileName   = Path.GetRandomFileName();
            var outputFile = new FileInfo(Path.ChangeExtension(fileName, "csv"));
            CsvContext <MockPoco> csvContext = null;
            CsvRepo <MockPoco>    repository = null;

            try
            {
                csvContext = new CsvContext <MockPoco>(outputFile)
                {
                    Culture = CultureInfo.InvariantCulture
                };
                repository = new CsvRepo <MockPoco>(csvContext);

                // Act

                repository.Add(input);
                csvContext.SaveChanges();

                var received = File.ReadAllText(outputFile.FullName);

                // Assert

                Assert.Contains(input.Value, received);
            }
            finally
            {
                repository?.Dispose();

                outputFile.Delete();
            }
        }
Пример #2
0
        public void CreateAndDeleteEntityTest()
        {
            var dbProvider = ProviderDefaults.AppProvider;

            var mp = new MockPoco {
                MockStringValue = "xxx"
            };
            var dew = new DataModel <MockPoco>(mp);

            dew.DataProvider = dbProvider;
            dew.Save();

            var myMockEntityQuery = DataModel <MockPoco>
                                    .NewQuery()
                                    .WhereColumn["string_value"] == "xxx";

            var entity = dbProvider.LoadModel(myMockEntityQuery);

            Assert.IsNotNull(entity);
            Assert.IsNotNull(entity.Entity.ID);
            Assert.IsTrue(entity.Entity.ID > 0);
            Assert.IsTrue(entity.Entity.MockStringValue == "xxx");
            entity.MarkDeleted = true;
            entity.Save();

            entity = dbProvider.LoadModel(myMockEntityQuery);
            Assert.IsNull(entity);
        }
Пример #3
0
        public void GetGets(MockPoco input)
        {
            // Arrange

            var fileName   = Path.GetRandomFileName();
            var outputFile = new FileInfo(Path.ChangeExtension(fileName, "csv"));

            CsvContext <MockPoco> csvContext = null;
            CsvRepo <MockPoco>    repository = null;

            try
            {
                csvContext = new CsvContext <MockPoco>(outputFile)
                {
                    Culture = CultureInfo.InvariantCulture
                };
                repository = new CsvRepo <MockPoco>(csvContext);
                csvContext.Entities.Add(input);
                csvContext.SaveChanges();

                // Act
                var received = repository.Get(input);

                // Assert

                Assert.Equal(input, received);
            }
            finally
            {
                repository?.Dispose();

                outputFile.Delete();
            }
        }
Пример #4
0
        public void ShouldResolveObjectInstance()
        {
            var instance = new MockPoco();

            container.RegisterInstance(typeof(IMock), instance);
            Assert.IsNotNull(container.Resolve(typeof(IMock)));
        }
Пример #5
0
        public void AddOrUpdateAdds(MockPoco input)
        {
            // Arrange

            var                   testSettings = new TestProjectSettings();
            DbContext             testContext  = null;
            Repository <MockPoco> tested       = null;

            try
            {
                testContext = new MockPocoContext(testSettings);
                tested      = new Repository <MockPoco>(testContext);
                testContext.Database.EnsureCreated();

                // Act

                tested.AddOrUpdate(input);
                testContext.SaveChanges();

                // Assert

                Assert.Equal(input, testContext.Set <MockPoco>().First());
            }
            finally
            {
                testContext?.Database.EnsureDeleted();
                tested?.Dispose();
                testContext?.Dispose();
            }
        }
Пример #6
0
        public void UpdateUpdates(MockPoco input)
        {
            // Arrange
            const string          expected     = "newValue1";
            var                   testSettings = new TestProjectSettings();
            DbContext             testContext  = null;
            Repository <MockPoco> tested       = null;

            try
            {
                testContext = new MockPocoContext(testSettings);
                tested      = new Repository <MockPoco>(testContext);
                testContext.Database.EnsureCreated();
                testContext.Add(input);
                testContext.SaveChanges();

                // Act

                input.Value = expected;
                testContext.SaveChanges();

                // Assert

                Assert.Equal(input.Value, testContext.Set <MockPoco>().First().Value);
            }
            finally
            {
                testContext?.Database.EnsureDeleted();
                tested?.Dispose();
                testContext?.Dispose();
            }
        }
Пример #7
0
        public void ShouldRegisterInstanceGeneric()
        {
            var instance = new MockPoco();

            container.Register <IMock>(instance);
            var registered = container.Registry.First(f => f.From == typeof(IMock));

            Assert.AreSame(instance, registered.Instance);
        }
Пример #8
0
        public void ShouldResolveGeneric()
        {
            var instance = new MockPoco();

            container.Register <IMock>(instance);
            var resolved = container.Resolve <IMock>();

            Assert.AreSame(instance, resolved);
        }
Пример #9
0
        public void ShouldProvideInstance()
        {
            var container = new MiniCoreContainer();
            var instance  = new MockPoco();

            container.Register(instance);

            var provider = new MiniCoreInstanceProvider(container);
            var context  = new InstanceContext(new MockServiceHost(typeof(MockPoco)));

            var actual = provider.GetInstance(context);

            Assert.AreSame(instance, actual);
        }
Пример #10
0
        public void CreateAndDeleteEntitiesTest()
        {
            var dbProvider = ProviderDefaults.AppProvider;

            var mockPoco1 = new MockPoco {
                MockStringValue = "MockPoco1_xxx"
            };
            var mockPoco1_de = new DataModel <MockPoco>(mockPoco1);

            mockPoco1_de.DataProvider = dbProvider;
            mockPoco1_de.Save();
            var mockPoco2 = new MockPoco {
                MockStringValue = "MockPoco2_xxx"
            };
            var mockPoco2_de = new DataModel <MockPoco>(mockPoco2);

            mockPoco2_de.DataProvider = dbProvider;
            mockPoco2_de.Save();
            var mockPoco3 = new MockPoco {
                MockStringValue = "MockPoco3_xxx"
            };
            var mockPoco3_de = new DataModel <MockPoco>(mockPoco3);

            mockPoco3_de.DataProvider = dbProvider;
            mockPoco3_de.Save();

            var myMockEntityQuery = DataModel <MockPoco>
                                    .NewQuery()
                                    .WhereColumn["string_value"].IsLike("%xxx");

            var entities = dbProvider.LoadModels(myMockEntityQuery);
            var e        = entities.Unwrap <MockPoco>()[0];

            entities[0].MarkDeleted = true;
            entities[2].MarkDeleted = true;
            entities.Save();

            var entities2 = dbProvider.LoadModels(myMockEntityQuery);

            if (entities2.Count != 1)
            {
            }
            Assert.IsTrue(entities2.Count == 1);

            //cleanup
            entities[1].MarkDeleted = true;
            entities.Save();
        }
Пример #11
0
        public void StaticSaveMethodTest()
        {
            var entity = new MockPoco
            {
                MockStringValue = "zzz"
            };

            DataModel <MockPoco> .Save(entity);

            var model = DataModel <MockPoco> .LoadMany(DataModel <MockPoco> .NewQuery()).Last();

            Assert.IsNotNull(model);
            Assert.IsTrue(model.Entity.MockStringValue == "zzz");
            model.MarkDeleted = true;
            model.Save();
        }
Пример #12
0
        public void AddOrUpdateUpdates(MockPoco input)
        {
            string       oldValue = input.Value;
            const string newValue = "newValue5";
            // Arrange

            var fileName   = Path.GetRandomFileName();
            var outputFile = new FileInfo(Path.ChangeExtension(fileName, "csv"));


            using (var streamWriter = outputFile.CreateText())
            {
                streamWriter.Write($"Id,Value\r\n{input.Id},{input.Value}\r\n");
            }
            CsvContext <MockPoco> csvContext = null;
            CsvRepo <MockPoco>    repository = null;

            try
            {
                csvContext = new CsvContext <MockPoco>(outputFile)
                {
                    Culture = CultureInfo.InvariantCulture
                };
                repository = new CsvRepo <MockPoco>(csvContext);
                csvContext.SaveChanges();

                // Act
                input.Value = newValue;
                repository.AddOrUpdate(input);
                csvContext.SaveChanges();

                var received = File.ReadAllText(outputFile.FullName);

                // Assert

                Assert.Contains(newValue, received);
                Assert.DoesNotContain(oldValue, received);
            }
            finally
            {
                repository?.Dispose();

                outputFile.Delete();
            }
        }
Пример #13
0
        public void AddToCsvRepoWorksWhenNonEmptyFileExists(MockPoco input)
        {
            // Arrange

            var fileName   = Path.GetRandomFileName();
            var outputFile = new FileInfo(Path.ChangeExtension(fileName, "csv"));


            using (var streamWriter = outputFile.CreateText())
            {
                streamWriter.Write("Id,Value\r\n5,test5\r\n");
            }
            CsvContext <MockPoco> csvContext = null;
            CsvRepo <MockPoco>    repository = null;

            try
            {
                csvContext = new CsvContext <MockPoco>(outputFile)
                {
                    Culture = CultureInfo.InvariantCulture
                };
                repository = new CsvRepo <MockPoco>(csvContext);

                // Act

                repository.Add(input);
                csvContext.SaveChanges();

                var received = File.ReadAllText(outputFile.FullName);

                // Assert

                Assert.Contains("test5", received);
                Assert.Contains(input.Value, received);
            }
            finally
            {
                repository?.Dispose();

                outputFile.Delete();
            }
        }
Пример #14
0
        public void CreateWithoutProcAndDeleteWithProcEntityTest()
        {
            var dbProvider = ProviderDefaults.AppProvider;

            var oldMapping = DataModelMap.GetEntityMapping(typeof(MockPoco));

            DataModelMap.MapItems.Remove(typeof(MockPoco));
            var newMapping = DataModelMap.GetEntityMapping(typeof(MockPoco));

            newMapping.TableMapping.DeleteProcedure = "sp_mock_table_Delete";

            try
            {
                var mp = new MockPoco {
                    MockStringValue = "xxx"
                };
                var dew = new DataModel <MockPoco>(mp);
                dew.DataProvider = dbProvider;
                dew.Save();

                var myMockEntityQuery = DataModel <MockPoco>
                                        .NewQuery()
                                        .WhereColumn["string_value"] == "xxx";

                var entity = dbProvider.LoadModel(myMockEntityQuery);
                Assert.IsNotNull(entity);
                Assert.IsNotNull(entity.Entity.ID);
                Assert.IsTrue(entity.Entity.ID > 0);
                Assert.IsTrue(entity.Entity.MockStringValue == "xxx");
                entity.MarkDeleted = true;
                entity.Save();

                entity = dbProvider.LoadModel(myMockEntityQuery);
                Assert.IsNull(entity);
            }
            finally
            {
                DataModelMap.MapItems.Remove(typeof(MockPoco));
                DataModelMap.MapItems.Add(typeof(MockPoco), oldMapping);
            }
        }
Пример #15
0
        public void UpdateUpdatesAfterChangesCommited(MockPoco input)
        {
            string       oldValue = input.Value;
            const string newValue = "newValue5";
            // Arrange

            var fileName   = Path.GetRandomFileName();
            var outputFile = new FileInfo(Path.ChangeExtension(fileName, "csv"));

            CsvContext <MockPoco> csvContext = null;
            CsvRepo <MockPoco>    repository = null;

            try
            {
                csvContext = new CsvContext <MockPoco>(outputFile)
                {
                    Culture = CultureInfo.InvariantCulture
                };
                repository = new CsvRepo <MockPoco>(csvContext);

                // Act
                repository.Add(input);
                csvContext.SaveChanges();
                input.Value = newValue;
                csvContext.SaveChanges();

                var received = File.ReadAllText(outputFile.FullName);

                // Assert

                Assert.Contains(newValue, received);
                Assert.DoesNotContain(oldValue, received);
            }
            finally
            {
                repository?.Dispose();

                outputFile.Delete();
            }
        }
Пример #16
0
        public void CreateAndDeleteEntityTest2()
        {
            var dbProvider = ProviderDefaults.AppProvider;

            var mp = new MockPoco {
                MockStringValue = "xxx"
            };
            var dew = new DataModel <MockPoco>(mp); // data entity wrapper

            dew.DataProvider = dbProvider;
            dew.Save(); // auto-synchronizes ID
            // or...
            //dbProvider.SaveModel(dew);
            //dew.SynchronizeFields(SyncTo.ClrMembers); // manually sync ID

            // now let's load it and validate that it was saved
            var mySampleEntityQuery = DataModel <MockPoco> .NewQuery()
                                      .WhereProperty["ID"] == mp.ID; // mp.ID was inferred as IsIdentity so we auto-returned it on Save()

            var data = dbProvider.LoadModel(mySampleEntityQuery);

            Assert.IsNotNull(data);

            // by the way, you can go back to the POCO type, too
            var mp2 = data.Entity;

            // precompiler-checked: Assert.IsTrue(mp2 is MockPoco);
            Assert.IsTrue(mp2.ID > 0);
            Assert.IsTrue(mp2.MockStringValue == "xxx");

            // test passed, let's delete the test record
            data.MarkDeleted = true;
            data.Save();

            // ... and make sure that it has been deleted
            data = dbProvider.LoadModel(mySampleEntityQuery);
            Assert.IsNull(data);
        }
Пример #17
0
        public void DefaultDBProviderTest()
        {
            var sqlFactory = SqlClientFactory.Instance;
            var dbProvider = new DbDataProvider(sqlFactory, TestSqlConnection);

            ProviderDefaults.AppProvider = dbProvider;
            var poco = new MockPoco();

            poco.MockStringValue = "Provider wuz here";
            var pocoModel = new DataModel <MockPoco>(poco);

            pocoModel.Save();
            var q = DataModel <MockPoco> .NewQuery()
                    .WhereProperty["MockStringValue"]
                    .IsEqualTo("Provider wuz here");

            pocoModel = dbProvider.LoadModel(q);
            Assert.IsNotNull(poco);
            Assert.IsTrue(pocoModel.Entity.MockStringValue == "Provider wuz here");
            Assert.IsTrue(pocoModel.Entity.ID > 0);

            // clean-up
        }