Ejemplo n.º 1
0
        public async Task Read_By_Where_Condition(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act
            IEnumerable <City> cities = await dataContext.ReadList <City>(new { Area = "Hampshire" });

            // Assert
            // NOTE: there is only one team in Hampshire
            Assert.AreEqual(2, cities.Count());
        }
Ejemplo n.º 2
0
        public async Task Insert_With_Composite_Key_Two_Assigned_And_One_Sequential(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // Act
            AssignedPairAndSequential oneOneOne = await dataContext.Create(new AssignedPairAndSequential()
            {
                FirstAssignedId = 1, SecondAssignedId = 1, Heading = "One"
            });

            AssignedPairAndSequential oneOneTwo = await dataContext.Create(new AssignedPairAndSequential()
            {
                FirstAssignedId = 1, SecondAssignedId = 1, Heading = "Two"
            });

            AssignedPairAndSequential oneTwoOne = await dataContext.Create(new AssignedPairAndSequential()
            {
                FirstAssignedId = 1, SecondAssignedId = 2, Heading = "One"
            });

            // Assert
            Assert.AreEqual(1, oneOneOne.SequentialId);
            Assert.AreEqual(2, oneOneTwo.SequentialId);
            Assert.AreEqual(1, oneTwoOne.SequentialId);
        }
Ejemplo n.º 3
0
        public async Task Update_With_Datestamp(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // insert row
            DateStamp row = await dataContext.Create(new DateStamp()
            {
                Name = "Key", Value = "Value"
            });

            // sleep so that insert date and update date will be different when update called
            Thread.Sleep(TimeSpan.FromMilliseconds(1000));

            // Act
            DateTime  updateDate = DateTime.Now;
            DateStamp updatedRow = await dataContext.Update <DateStamp>(new { row.Name, Value = "New Value" });

            // Assert
            Assert.AreEqual(row.Name, updatedRow.Name);
            Assert.AreEqual("New Value", updatedRow.Value);
            Assert.AreEqual(0, (row.InsertDate - updatedRow.InsertDate).Seconds);
            Assert.AreNotEqual(row.InsertDate, updatedRow.UpdateDate);
            Assert.That(updatedRow.UpdateDate, Is.EqualTo(updateDate).Within(TimeSpan.FromSeconds(1)));
        }
Ejemplo n.º 4
0
        public async Task Delete_List_No_Conditions(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create <City>(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "HAV", CityName = "Havant", Area = "Hampshire"
            });

            // Act / Assert
            Assert.ThrowsAsync <ArgumentException>(async() => { await dataContext.DeleteList <City>(null); });
            Assert.ThrowsAsync <ArgumentException>(async() => { await dataContext.DeleteList <City>(new object()); });
        }
Ejemplo n.º 5
0
        public async Task Delete_List_Of_Entities(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create <City>(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            await dataContext.Create <City>(new City()
            {
                CityCode = "HAV", CityName = "Havant", Area = "Hampshire"
            });

            // Act
            await dataContext.DeleteList <City>(new { Area = "Hampshire" });

            // Assert
            Assert.AreEqual(0, (await dataContext.ReadList <City>(new { Area = "Hampshire" })).Count());
            Assert.AreEqual(1, (await dataContext.ReadAll <City>()).Count());
        }
Ejemplo n.º 6
0
        public async Task Read_Paged_With_Where_Dictionary(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "WIN", CityName = "Winchester", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "PTR", CityName = "Petersfield", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "CHI", CityName = "Chichester", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOG", CityName = "Bognor Regis", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act
            PagedList <City> pagedList = await dataContext.ReadList <City>(
                new Dictionary <string, object>() { { "Area", "Hampshire" } },
                null,
                4,
                1);

            // Assert
            Assert.AreEqual(4, pagedList.Rows.Count());
            Assert.AreEqual(false, pagedList.HasPrevious);
            Assert.AreEqual(true, pagedList.HasNext);
            Assert.AreEqual(2, pagedList.TotalPages);
            Assert.AreEqual(5, pagedList.TotalRows);
        }
Ejemplo n.º 7
0
        public async Task Read_Paged_Last_Page(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "WIN", CityName = "Winchester", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "PTR", CityName = "Petersfield", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "CHI", CityName = "Chichester", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOG", CityName = "Bognor Regis", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Arrange - read the first page to see how many pages there are
            int lastPage = (await dataContext.ReadList <City>(null, null, 3, 1)).TotalPages;

            // Act - read the last page
            PagedList <City> pagedList = await dataContext.ReadList <City>(null, null, 3, lastPage);

            // Assert
            Assert.AreEqual(pagedList.TotalRows - ((lastPage - 1) * 3), pagedList.Rows.Count());
            Assert.AreEqual(true, pagedList.HasPrevious);
            Assert.AreEqual(false, pagedList.HasNext);
            Assert.AreEqual(lastPage, pagedList.TotalPages);
        }
Ejemplo n.º 8
0
        public async Task Read_Paged_With_Where_Dictionary_And_OrderBy_Dictionary(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "WIN", CityName = "Winchester", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "PTR", CityName = "Petersfield", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "CHI", CityName = "Chichester", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOG", CityName = "Bognor Regis", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act
            PagedList <City> pagedList = await dataContext.ReadList <City>(
                new Dictionary <string, object>() { { "Area", "Hampshire" } },
                new Dictionary <string, SortOrder>() { { "CityName", SortOrder.Descending } },
                5,
                1);

            // Assert
            string[] expectedOrder = { "Winchester", "Southampton", "Portsmouth", "Petersfield", "Basingstoke" };
            Assert.IsTrue(pagedList.Rows.Select(x => x.CityName).SequenceEqual(expectedOrder));
        }
Ejemplo n.º 9
0
        public async Task Read_Paged_Neither_First_Or_Last_Page(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "WIN", CityName = "Winchester", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "PTR", CityName = "Petersfield", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "CHI", CityName = "Chichester", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOG", CityName = "Bognor Regis", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act
            PagedList <City> pagedList = await dataContext.ReadList <City>(null, null, 2, 2);

            // Assert
            Assert.AreEqual(2, pagedList.Rows.Count());
            Assert.AreEqual(true, pagedList.HasPrevious);
            Assert.AreEqual(true, pagedList.HasNext);
            Assert.AreEqual(4, pagedList.TotalPages);
            Assert.AreEqual(8, pagedList.TotalRows);
        }
Ejemplo n.º 10
0
        public async Task Insert_With_Soft_Delete(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // Act
            SoftDelete softDelete = await dataContext.Create <SoftDelete>(new SoftDelete()).ConfigureAwait(false);

            // Assert
            Assert.Greater(softDelete.SoftDeleteId, 0);
            Assert.AreEqual(1, softDelete.RecordStatus);
        }
Ejemplo n.º 11
0
        public async Task Update_Soft_Delete_Column(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            SoftDelete   softDelete  = await dataContext.Create <SoftDelete>(new SoftDelete());

            // Act / Assert
            Assert.ThrowsAsync <ArgumentException>(async() =>
            {
                await dataContext.Update <SoftDelete>(new { softDelete.SoftDeleteId, RecordStatus = 999 });
            });
        }
Ejemplo n.º 12
0
        public async Task Read_Paged_With_Invalid_OrderBy_Dictionary(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "SOU", CityName = "Southampton", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "WIN", CityName = "Winchester", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "PTR", CityName = "Petersfield", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "CHI", CityName = "Chichester", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOG", CityName = "Bognor Regis", Area = "West Sussex"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act / Assert
            Assert.ThrowsAsync <ArgumentException>(async() =>
            {
                await dataContext.ReadList <City>(null, new Dictionary <string, SortOrder> {
                    { "County", SortOrder.Descending }
                }, 1, 1);
            });
        }
Ejemplo n.º 13
0
        public async Task Delete_Entity_Single_Typed_Argument(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            City         city        = await dataContext.Create <City>(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            // Act
            await dataContext.Delete <City>(city.CityId);

            // Assert
            Assert.IsNull(await dataContext.Read <City>(new { city.CityId }));
        }
Ejemplo n.º 14
0
        public async Task Insert_With_Assigned_Key(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // Act
            CityManual city = await dataContext.Create(new CityManual()
            {
                CityCode = "BRI", CityName = "Brighton"
            });

            // Assert
            Assert.AreEqual("BRI", city.CityCode);
            Assert.AreEqual("Brighton", city.CityName);
        }
Ejemplo n.º 15
0
        public async Task Insert_With_Identity(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // Act
            City city = await dataContext.Create(new City()
            {
                CityCode = "BRI", CityName = "Brighton", Area = "Sussex"
            });

            // Assert
            Assert.Greater(city.CityId, 0);
            Assert.AreEqual("BRI", city.CityCode);
            Assert.AreEqual("Brighton", city.CityName);
            Assert.AreEqual("Sussex", city.Area);
        }
Ejemplo n.º 16
0
        public async Task Insert_With_Datestamp(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);

            // Act
            DateTime  now = DateTime.Now;
            DateStamp row = await dataContext.Create(new DateStamp()
            {
                Name = "Key", Value = "Value"
            });

            // Assert
            Assert.AreEqual("Key", row.Name);
            Assert.AreEqual("Value", row.Value);
            Assert.AreEqual(row.InsertDate, row.UpdateDate);
            Assert.That(row.InsertDate, Is.EqualTo(now).Within(TimeSpan.FromSeconds(1)));
        }
Ejemplo n.º 17
0
        public async Task Update_Editable_Property(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            City         city        = await dataContext.Create <City>(new City()
            {
                CityCode = "BAS", CityName = "Basingstoke", Area = "Hampshire"
            });

            // Act
            City basVegas = await dataContext.Update <City>(new { city.CityId, CityName = "Bas Vegas!" });

            // Assert
            Assert.AreEqual(city.CityId, basVegas.CityId);
            Assert.AreEqual(city.CityCode, basVegas.CityCode);
            Assert.AreEqual(city.Area, basVegas.Area);
            Assert.AreEqual("Bas Vegas!", basVegas.CityName);
        }
Ejemplo n.º 18
0
        public async Task Read_All_With_Assigned(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new CityManual()
            {
                CityCode = "PUP", CityName = "Portsmouth"
            });

            await dataContext.Create(new CityManual()
            {
                CityCode = "NYC", CityName = "New York City"
            });

            // Act
            IEnumerable <CityManual> cities = dataContext.ReadAll <CityManual>().GetAwaiter().GetResult();

            // Assert
            Assert.AreEqual(2, cities.Count());
        }
Ejemplo n.º 19
0
        public async Task Read_By_Id_With_Assigned_Single_Typed_Argument(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new CityManual()
            {
                CityCode = "PUP", CityName = "Portsmouth"
            });

            await dataContext.Create(new CityManual()
            {
                CityCode = "NYC", CityName = "New York City"
            });

            // Act
            CityManual city = await dataContext.Read <CityManual>("NYC");

            // Assert
            Assert.AreEqual("NYC", city.CityCode);
            Assert.AreEqual("New York City", city.CityName);
        }
Ejemplo n.º 20
0
        public async Task Read_All_With_Identity(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "BOU", CityName = "Bournemouth", Area = "Dorset"
            });

            // Act
            IEnumerable <City> cities = await dataContext.ReadAll <City>();

            // Assert
            Assert.AreEqual(2, cities.Count());
            Assert.Greater(cities.ElementAt(0).CityId, 0);
            Assert.Greater(cities.ElementAt(1).CityId, cities.ElementAt(0).CityId);
        }
Ejemplo n.º 21
0
        public async Task Read_By_Id_With_Identity_Property_Bag(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            City         pup         = await dataContext.Create(new City()
            {
                CityCode = "PUP", CityName = "Portsmouth", Area = "Hampshire"
            });

            await dataContext.Create(new City()
            {
                CityCode = "NYC", CityName = "New York City", Area = "New York"
            });

            // Act
            City city = await dataContext.Read <City>(new { pup.CityId });

            // Assert
            Assert.AreEqual(pup.CityId, city.CityId);
            Assert.AreEqual("PUP", city.CityCode);
            Assert.AreEqual("Portsmouth", city.CityName);
        }
Ejemplo n.º 22
0
        public async Task Update_Read_Only_Column(Type dataContextType)
        {
            // Arrange
            IDataContext dataContext = DataContextTestHelper.GetDataContext(dataContextType);
            ReadOnly     readOnly    = await dataContext.Create <ReadOnly>(new ReadOnly()
            {
                Editable         = "Hello",
                ReadOnlyProperty = "World"
            });

            // Act
            readOnly = await dataContext.Update <ReadOnly>(new
            {
                readOnly.SequentialId,
                Editable         = "Goodbye",
                ReadOnlyProperty = "Yesterday"
            });

            // Assert
            Assert.AreEqual("Goodbye", readOnly.Editable);
            Assert.AreEqual("World", readOnly.ReadOnlyProperty);
        }
        public void TearDown()
        {
            Type type = (Type)TestContext.CurrentContext.Test.Arguments[0];

            DataContextTestHelper.DeleteDataContext(type);
        }