Esempio n. 1
0
        public void Test12()
        {
            throw new Exception("Этот тест входит в бесконечный цикл и роняет систему прогонки тестов");

            var dataModel = new TestDataModel { Settings = { IsSmart = true } };

            dataModel.CAR.AddObject(new CAR { CAR_ID = 1 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 1, DOOR_ID = 10 });

            var cars =
                (from car in dataModel.CAR
                 select new Container { Id2 = (int?)car.CAR_ID });

            cars = cars.Union(new[] { new Container { Id2 = null } });

            var doors =
                from door in dataModel.DOOR
                select new { DoorId = door.DOOR_ID, Cars = cars.Where(car => car.Id2 == door.CAR_ID) };

            var finalDoors =
                (from door in dataModel.DOOR
                 where doors.Any(d => d.Cars.Any(c => c.Id2 == door.CAR_ID))
                 select door).ToList();

            Assert.AreEqual(1, finalDoors.Count);
        }
Esempio n. 2
0
        public static void Should_Return_CorrectOutput_With_OKStatus_For_DoubleInput(TestDataModel <double> model, string fileName)
        {
            Skip.If(model.Skip, "Test has been skipped in configuration");

            const double equalityTolerance = 0.001d;

            Indicators.IndicatorsDefinition.ShouldContainKey(model.Name, $"Cannot find definition for '{model.Name}");
            var indicator = Indicators.IndicatorsDefinition[model.Name];

            model.Options.Length.ShouldBe(indicator.Options.Length, "Number of options must match the definition");
            var inputOffset = indicator.Start(model.Options);

            model.Inputs.Length.ShouldBe(indicator.Inputs.Length, "Number of inputs must match the definition");
            var outputLength = model.Inputs[0].Length - inputOffset;

            outputLength.ShouldBePositive("Output array should have the correct length");

            var resultOutput = new double[model.Outputs.Length][];

            resultOutput.Length.ShouldBe(indicator.Outputs.Length, "Number of outputs must match the definition");
            for (var i = 0; i < resultOutput.Length; i++)
            {
                resultOutput[i] = new double[outputLength];
            }

            var returnCode = indicator.Run(model.Inputs, model.Options, resultOutput);

            returnCode.ShouldBe(0, "Function should complete with success status code TI_OK(0)");

            for (var i = 0; i < resultOutput.Length; i++)
            {
                resultOutput[i].Length.ShouldBe(model.Outputs[i].Length, "Expected and calculated length of the output arrays should be equal");
                resultOutput[i].ShouldBe(model.Outputs[i], equalityTolerance);
            }
        }
Esempio n. 3
0
        private void ExecuteGroupBy(bool isSmart)
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = isSmart }
            };

            dataModel.DOOR.AddObject(new DOOR {
                DOOR_ID = 1
            });
            dataModel.DOOR.AddObject(new DOOR {
                DOOR_ID = 2
            });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {
                DOOR_HANDLE_ID = 1, DOOR_ID = 1, COLOR = "YELLOW"
            });

            var minIdDoors =
                (from door in dataModel.DOOR
                 join doorHandle in dataModel.DOOR_HANDLE on door.DOOR_ID equals doorHandle.DOOR_ID into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                 join doorHandle2 in dataModel.DOOR_HANDLE on doorHandle.DOOR_HANDLE_ID equals doorHandle2.DOOR_HANDLE_ID into joinedDoorHandle2 from doorHandle2 in joinedDoorHandle2.DefaultIfEmpty()
                 group new { doorHandle2, door } by doorHandle2.COLOR into groupedDoorHandle
                 select new { Id = groupedDoorHandle.Min(x => x.door.DOOR_ID), Color = groupedDoorHandle.Key }).ToList();

            Assert.AreEqual(1, minIdDoors.First().Id);
            Assert.AreEqual("YELLOW", minIdDoors.First().Color);
            Assert.AreEqual(null, minIdDoors[1].Color);
        }
        public HttpResponseMessage PostTest([FromBody] TestDataModel model)
        {
            foreach (var subject in model.SubjectList)
            {
                if (_questionDal.GetAllQuestions().Count(q => q.CategoryId == subject.Id) < model.NumberOfQuestions)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, new { Message = " Number of questions to high " }));
                }
            }

            var questionList = new List <Question>();

            foreach (var subject in model.SubjectList)
            {
                var questions =
                    _questionDal.GetAllQuestions()
                    .Where(q => q.CategoryId == subject.Id)
                    .OrderBy(r => Guid.NewGuid())
                    .Take(model.NumberOfQuestions).ToList();
                questionList.AddRange(questions);
            }

            var test = _testDal.AddTestWithQuestions(model.TestName, model.TestLevelId,
                                                     new TimeSpan(model.Hours, model.Minutes, model.Seconds), questionList);


            return(Request.CreateResponse(HttpStatusCode.Created, new { Message = "Test has been created" }));
        }
Esempio n. 5
0
        void ExecuteNullComparison(bool isSmart)
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = isSmart } };

            new[]
            {
                new DOOR_HANDLE {DOOR_HANDLE_ID = 1, MATERIAL_ID = 1, MANUFACTURER_ID = 1}, // <----
                new DOOR_HANDLE {DOOR_HANDLE_ID = 2, MATERIAL_ID = 2, MANUFACTURER_ID = 2}, //      |-- this is only pair
                new DOOR_HANDLE {DOOR_HANDLE_ID = 3, MATERIAL_ID = 1, MANUFACTURER_ID = 1}, // <----
                new DOOR_HANDLE {DOOR_HANDLE_ID = 4, MATERIAL_ID = 5, MANUFACTURER_ID = null},
                new DOOR_HANDLE {DOOR_HANDLE_ID = 5, MATERIAL_ID = 5, MANUFACTURER_ID = null},
                new DOOR_HANDLE {DOOR_HANDLE_ID = 6, MATERIAL_ID = null, MANUFACTURER_ID = null},
                new DOOR_HANDLE {DOOR_HANDLE_ID = 7, MATERIAL_ID = null, MANUFACTURER_ID = null}
            }
            .ForEach(x => dataModel.DOOR_HANDLE.AddObject(x));

            var handlePairsWithSameMaterialAndManufacturer =
               (from handle in dataModel.DOOR_HANDLE
                join anotherHandle in dataModel.DOOR_HANDLE on handle.MATERIAL_ID equals anotherHandle.MATERIAL_ID
                where handle.MANUFACTURER_ID == anotherHandle.MANUFACTURER_ID && handle.DOOR_HANDLE_ID < anotherHandle.DOOR_HANDLE_ID
                select new {handle, anotherHandle}).ToList();

            Assert.AreEqual(1, handlePairsWithSameMaterialAndManufacturer.Count);
            var pair = handlePairsWithSameMaterialAndManufacturer.First();
            Assert.AreEqual(1, pair.handle.MATERIAL_ID);
            Assert.AreEqual(pair.handle.MATERIAL_ID, pair.anotherHandle.MATERIAL_ID);
            Assert.AreEqual(1, pair.handle.MANUFACTURER_ID);
            Assert.AreEqual(pair.handle.MANUFACTURER_ID, pair.anotherHandle.MANUFACTURER_ID);
        }
        public async Task UpdateDatabase(TestDataModel project, UpdateTypeEnum updateType)
        {
            try
            {
                UpdateDataRequest request = new UpdateDataRequest()
                {
                    Project    = project,
                    UpdateType = new UpdateTypeModel()
                    {
                        Type = updateType
                    }
                };

                var response = (await TestDataServiceClient.UpdateDataRecordAsync(request));
                if (!response.Result.IsValid)
                {
                    _message = new MessageWindowModel()
                    {
                        Title   = "Server error updating Data",
                        Message = response.Result.ErrorMessage,
                    };
                }

                // Refresh the Grid
                await ReadHandler(_lastArgs);
            }
            catch (Exception ex)
            {
                _message = new MessageWindowModel()
                {
                    Title   = "Error Updating Data",
                    Message = ExHelper.GetExceptionText(ex),
                };
            }
        }
Esempio n. 7
0
        public async Task <Result> HandleDataModelAsync(TestDataModel dataModel)
        {
            try
            {
                // data model already in the context
                var local = _context.Set <TestDataModel>()
                            .Local
                            .FirstOrDefault(r => r.Name == dataModel.Name && r.Timestamp.CompareTo(dataModel.Timestamp) == 0);
                if (local == default(TestDataModel))
                {
                    local = await _context.DataModels !
                            .FirstOrDefaultAsync(r => r.Name == dataModel.Name && r.Timestamp.CompareTo(dataModel.Timestamp) == 0);
                    if (local == default(TestDataModel))
                    {
                        throw new InvalidOperationException("Test data model not found");
                    }
                }

                local.Property = DateTimeOffset.Now.ToString("o");
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Error occurred during handling data model {0} - {1}", e.Message, e.StackTrace);
                return(Result.Error);
            }

            return(Result.Success);
        }
Esempio n. 8
0
        public void Leaves_string_to_truncate_as_null_if_it_is_not_required()
        {
            var testDataModel = new TestDataModel();

            DataStringPropertyHelper.ValidateString(testDataModel, m => m.TruncateMe);
            Assert.IsNull(testDataModel.TruncateMe);
        }
Esempio n. 9
0
        public void Test8()
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = true }
            };

            dataModel.DOOR.AddObject(new DOOR {
                DOOR_ID = 100
            });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {
                MATERIAL_ID = 100
            });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE());

            var handles =
                (from handle in dataModel.DOOR_HANDLE
                 select new { Id = handle.MATERIAL_ID.Value });

            var doors =
                from door in dataModel.DOOR
                where handles.Any(handle => handle.Id == door.DOOR_ID)
                select door;

            Assert.AreEqual(1, doors.Count());
        }
        public void RequiredAttributeCheckerInternalCheckTest()
        {
            // arrange
            var expectedFirstnameValid           = GetConvertedTestValueAsBool(0) ?? throw new ApplicationException("Could not retrieve expected value.");
            var expectedFirstnameErrorMessageKey = GetConvertedTestValueAsString(1);
            var expectedLastnameValid            = GetConvertedTestValueAsBool(2) ?? throw new ApplicationException("Could not retrieve expected value.");
            var expectedLastnameErrorMessageKey  = GetConvertedTestValueAsString(3);
            var expectedFirstnameErrorMessage    = string.IsNullOrEmpty(expectedFirstnameErrorMessageKey) ? string.Empty : TestResources.ResourceManager.GetString(expectedFirstnameErrorMessageKey);
            var expectedLastnameErrorMessage     = string.IsNullOrEmpty(expectedLastnameErrorMessageKey) ? string.Empty : TestResources.ResourceManager.GetString(expectedLastnameErrorMessageKey);
            var item = new TestDataModel
            {
                Firstname = GetConvertedTestValueAsString(4),
                Lastname  = GetConvertedTestValueAsString(5),
                Birthday  = GetConvertedTestValueAsDateTime(6)
            };
            var checker            = new RequiredAttributeChecker();
            var firstNameAttribute = item.GetAttribute <RequiredAttribute>(nameof(TestDataModel.Firstname));
            var lastNameAttribute  = item.GetAttribute <RequiredAttribute>(nameof(TestDataModel.Lastname));
            // act
            var resultFirstname = checker.Check(firstNameAttribute, item.Firstname);
            var resultLastname  = checker.Check(lastNameAttribute, item.Lastname);

            // assert
            Assert.AreEqual(expectedFirstnameValid, resultFirstname.IsValid, "The validity check for firstname failed.");
            Assert.AreEqual(expectedFirstnameErrorMessage, resultFirstname.ErrorMessage, "The error message for firstname is unexpected.");
            Assert.AreEqual(expectedLastnameValid, resultLastname.IsValid, "The validity check for lastname failed.");
            Assert.AreEqual(expectedLastnameErrorMessage, resultLastname.ErrorMessage, "The error message for lastname is unexpected.");
        }
Esempio n. 11
0
        void ExecuteSelect(bool isSmart)
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = isSmart }
            };

            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 1
            });
            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 2
            });
            dataModel.DOOR.AddObject(new DOOR {
                CAR_ID = 1, DOOR_ID = 1
            });
            dataModel.DOOR.AddObject(new DOOR {
                CAR_ID = 2, DOOR_ID = 2
            });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {
                DOOR_ID = 1, DOOR_HANDLE_ID = 1, COLOR = "RED"
            });

            var carsWithoutRedHandle =
                (from car in dataModel.CAR
                 join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                 into joinedDoor from door in joinedDoor.DefaultIfEmpty()
                 join doorHandle in dataModel.DOOR_HANDLE on new { door.DOOR_ID } equals new { doorHandle.DOOR_ID }
                 into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                 where doorHandle.COLOR != "RED" || doorHandle == null
                 select car).ToList();

            Assert.AreEqual(1, carsWithoutRedHandle.Count);
            Assert.AreEqual(2, carsWithoutRedHandle.First().CAR_ID);
        }
        private string AddNewRecord(TestDataModel addRecord)
        {
            string errorMessage = null;

            try
            {
                var newRecord = new DataModel()
                {
                    Id                = _dataContext.TestData.Count + 1,
                    ColumnInt32       = addRecord.ColumnInt32,
                    ColumnDouble      = addRecord.ColumnDouble,
                    ColumnFloat       = (float)addRecord.ColumnFloat,
                    ColumnBool        = addRecord.ColumnBool,
                    ColumnString      = addRecord.ColumnString,
                    ColumnBytes       = addRecord.ColumnBytes?.ToArray() ?? new byte[] { 0x20, 0x21, 0x22 },
                    ObjectId          = addRecord.ColumnTestObject?.Id ?? 99,
                    ObjectDescription = addRecord.ColumnTestObject?.Description ?? "Add some Text",
                    Created           = DateTime.Now,
                    Modified          = DateTime.Now
                };

                _dataContext.TestData.Add(newRecord);

                _dataContext.SaveChanges();
            }
            catch (Exception ex)
            {
                errorMessage = $"AddRecord error: {ExHelper.GetExceptionText(ex)}";
            }

            return(errorMessage);
        }
Esempio n. 13
0
        public IHttpActionResult Put(int id, [FromBody] TestDataModel testModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var test = this.Data.Tests.SearchFor(t => t.Id == id).FirstOrDefault();

            if (test == null)
            {
                return(this.BadRequest("Invalid id"));
            }

            var course = this.Data.Courses.SearchFor(c => c.Name == testModel.Course).FirstOrDefault();

            if (course == null)
            {
                return(this.BadRequest("Invalid course name"));
            }

            test.Course = course;

            this.Data.Tests.Update(test);
            this.Data.SaveChanges();

            return(this.Ok());
        }
Esempio n. 14
0
        public void Test11()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };

            dataModel.CAR.AddObject(new CAR { CAR_ID = 1 });
            dataModel.CAR.AddObject(new CAR { CAR_ID = 2 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 2, DOOR_ID = 1 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 1, DOOR_ID = 10 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 2, DOOR_ID = 20 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 1, DOOR_ID = 12 });

            var orderedIds =
                (from car in dataModel.CAR
                join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                select new {car.CAR_ID, door.DOOR_ID})
                    .OrderBy(x => x.CAR_ID).ThenBy(x => x.DOOR_ID).ToList();

            Assert.AreEqual(4, orderedIds.Count());
            Assert.AreEqual(1, orderedIds[0].CAR_ID);
            Assert.AreEqual(1, orderedIds[1].CAR_ID);
            Assert.AreEqual(2, orderedIds[2].CAR_ID);
            Assert.AreEqual(2, orderedIds[3].CAR_ID);
            Assert.AreEqual(10, orderedIds[0].DOOR_ID);
            Assert.AreEqual(12, orderedIds[1].DOOR_ID);
            Assert.AreEqual(1, orderedIds[2].DOOR_ID);
            Assert.AreEqual(20, orderedIds[3].DOOR_ID);
        }
Esempio n. 15
0
 void ExecuteSumFromEmptyTable(bool isSmart)
 {
     var dataModel = new TestDataModel {
         Settings = { IsSmart = isSmart }
     };
     int sum = dataModel.CAR.Sum(x => x.CAR_ID);
 }
        private string EditRecord(TestDataModel editRecord)
        {
            string errorMessage = null;

            try
            {
                var dbRecord = GetRecord(editRecord.Id);
                dbRecord.ColumnInt32       = editRecord.ColumnInt32;
                dbRecord.ColumnDouble      = editRecord.ColumnDouble;
                dbRecord.ColumnFloat       = (float)editRecord.ColumnFloat;
                dbRecord.ColumnBool        = editRecord.ColumnBool;
                dbRecord.ColumnString      = editRecord.ColumnString;
                dbRecord.ColumnBytes       = editRecord.ColumnBytes.ToArray();
                dbRecord.ObjectId          = editRecord.ColumnTestObject.Id;
                dbRecord.ObjectDescription = editRecord.ColumnTestObject.Description;
                dbRecord.Modified          = DateTime.Now;
                _dataContext.SaveChanges();
            }
            catch (Exception ex)
            {
                errorMessage = $"EditRecord error: {ExHelper.GetExceptionText(ex)}";
            }

            return(errorMessage);
        }
Esempio n. 17
0
        void ExecuteTwoLeftJoins(bool isSmart)
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = isSmart }
            };

            const int carId = 100;

            dataModel.CAR.AddObject(new CAR {
                CAR_ID = carId
            });
            dataModel.CAR.AddObject(new CAR {
                CAR_ID = carId + 1
            });

            var cars =
                (from car in dataModel.CAR
                 join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                 into joinedDoor from door in joinedDoor.DefaultIfEmpty()
                 join doorHandle in dataModel.DOOR_HANDLE on door.DOOR_ID equals doorHandle.DOOR_ID
                 into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                 select car).ToList();

            Assert.AreEqual(2, cars.Count);
            Assert.AreEqual(carId, cars.First().CAR_ID);
        }
Esempio n. 18
0
        public void ExecuteContains(bool isSmart)
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = isSmart }
            };

            new[]
            {
                new DOOR_HANDLE {
                    DOOR_HANDLE_ID = 1, MATERIAL_ID = 1
                },
                new DOOR_HANDLE {
                    DOOR_HANDLE_ID = 2, MATERIAL_ID = 2
                },
                new DOOR_HANDLE {
                    DOOR_HANDLE_ID = 3
                }
            }
            .ForEach(dataModel.DOOR_HANDLE.AddObject);

            var doorHandleIds = new List <int> {
                1, 2
            };

            var doorHandles =
                (from doorHandle in dataModel.DOOR_HANDLE
                 where doorHandleIds.Contains(doorHandle.MATERIAL_ID.Value)
                 select doorHandle).ToList();

            Assert.AreEqual(2, doorHandles.Count);
        }
Esempio n. 19
0
        public void Test9()
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = true }
            };

            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 1
            });
            dataModel.DOOR.AddObject(new DOOR {
                CAR_ID = 1, DOOR_ID = 10
            });

            var cars =
                (from car in dataModel.CAR
                 select new { CAR_ID = (int?)car.CAR_ID });

            cars = cars.Union(new[] { new { CAR_ID = (int?)null } });

            var doors =
                from door in dataModel.DOOR
                select new{ DoorId = door.DOOR_ID, Cars = cars.Where(car => car.CAR_ID == door.CAR_ID) };

            var finalDoors =
                (from door in dataModel.DOOR
                 where doors.Any(d => d.Cars.Any(c => c.CAR_ID == door.CAR_ID))
                 select door).ToList();

            Assert.AreEqual(1, finalDoors.Count);
        }
Esempio n. 20
0
        public void Test5()
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = true }
            };

            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 1
            });
            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 2
            });
            dataModel.DOOR.AddObject(new DOOR {
                CAR_ID = 1, DOOR_ID = 1
            });
            dataModel.DOOR.AddObject(new DOOR {
                CAR_ID = 2, DOOR_ID = 2
            });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {
                DOOR_ID = 1, DOOR_HANDLE_ID = 1, COLOR = "RED"
            });

            var carsWithoutRedHandle =
                (from car in dataModel.CAR
                 join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                 into joinedDoor
                 from door in joinedDoor.DefaultIfEmpty()
                 join doorHandle in dataModel.DOOR_HANDLE on new { door.DOOR_ID } equals new { doorHandle.DOOR_ID }
                 into joinedDoorHandle
                 from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                 where doorHandle.COLOR != "RED" || doorHandle == null
                 select new{ car }).First();

            Assert.AreEqual(2, carsWithoutRedHandle.car.CAR_ID);
        }
Esempio n. 21
0
        public void Test2()
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = true }
            };

            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 1
            });
            dataModel.CAR.AddObject(new CAR {
                CAR_ID = 2
            });

            var cars =
                (from car in dataModel.CAR
                 select new { car.CAR_ID, Container = new Container {
                                  Id = car.CAR_ID, Id2 = car.CAR_ID + 1, SubContainer = new Container {
                                      Id = 5, SubContainer = new Container()
                                  }
                              } }
                )
                .Where(x => x.Container.Id2 != 3)
                .ToList();

            var carExtended = cars.Single();

            Assert.AreEqual(1, carExtended.CAR_ID);
            Assert.AreEqual(1, carExtended.Container.Id);
            Assert.AreEqual(2, carExtended.Container.Id2);
            Assert.AreEqual(5, carExtended.Container.SubContainer.Id);
        }
Esempio n. 22
0
        public void Test4()
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = true }
            };

            dataModel.CAR.Where(y => y.CAR_ID == dataModel.CAR.Select(x => x).Sum(x => x.CAR_ID)).ToList();
        }
Esempio n. 23
0
            public void Create_calls_provider()
            {
                TestDataModel testDataModel = new TestDataModel();

                _dataService.Create(testDataModel);

                A.CallTo(() => _dataProvider.Query <int?>(A <string> .Ignored, A <ParameterCollection> .Ignored, CommandType.Text, A <Action <IDbConnection> > .Ignored)).MustHaveHappened();
            }
Esempio n. 24
0
 /// <summary>
 /// Retrieves a custom attribute for the given <paramref name="item" /> searching for a property by it's
 /// <paramref name="propertyName" />.
 /// </summary>
 /// <typeparam name="T">The type of the custom attribute the caller searches for.</typeparam>
 /// <param name="item">The target instance.</param>
 /// <param name="propertyName">The name of the property.</param>
 /// <returns>The custom attribute or <c>null</c> if no matching attribute was found.</returns>
 public static T GetAttribute <T>(this TestDataModel item, string propertyName)
 {
     if (!(item.GetType().GetProperty(propertyName)?.GetCustomAttributes(typeof(T), true).FirstOrDefault() is T attribute))
     {
         throw new ApplicationException("No matching attribute found on test model.");
     }
     return(attribute);
 }
Esempio n. 25
0
        // Insert in middle of structure test
        public TestModel MidInsertTest(int newIterations, string structureName)
        {
            ReadFiles();
            long memStart = 0, memEnd = 0;

            for (int i = 1; i < newIterations + 1; i++)
            {
                // get pre-fill memory
                memStart = GC.GetTotalMemory(true);

                switch (structureName)
                {
                case "StringBuilder":
                    newTestModel.title  = "StringBuilder";
                    newTestModel.method = ($"Insert a copy of War and Peace into middle of data structure; repeat {newIterations} times");
                    builderLarge        = new StringBuilder();
                    sw.Start();
                    builderLarge.Insert(builderLarge.Length / 2, stringLong);
                    sw.Stop();
                    break;

                case "BigList":
                    newTestModel.title  = "BigList";
                    newTestModel.method = ($"Insert a copy of War and Peace into middle of data structure; repeat {newIterations} times");
                    biglistLarge        = new BigList <string>();
                    sw.Start();
                    biglistLarge.Insert(biglistLarge.Count / 2, stringLong);
                    sw.Stop();
                    break;

                case "Rope":
                    newTestModel.title  = "Rope";
                    newTestModel.method = ($"Insert a copy of War and Peace into middle of data structure; repeat {newIterations} times");
                    ropeLarge           = new Rope.Rope <string>();
                    sw.Start();
                    ropeLarge.AddRange(newArray, ropeLarge.Length / 2, newArray.Length);
                    sw.Stop();
                    break;
                }

                memEnd = GC.GetTotalMemory(false);

                TestDataModel newTestData = new TestDataModel {
                    id = i, memory = (memEnd - memStart), time = sw.ElapsedTicks
                };

                // Gets sum of time and memory
                averageTime   += newTestData.time;
                averageMemory += newTestData.memory;

                newTestDataModel.Add(newTestData);
                sw.Reset();
            }
            newTestModel.averageTime   = averageTime / newIterations;
            newTestModel.averageMemory = averageMemory / newIterations;
            newTestModel.data          = newTestDataModel;
            return(newTestModel);
        }
Esempio n. 26
0
        public void IntegrationTest()
        {
            var algo  = new FetAlgorithm();
            var model = new TestDataModel().MockDataModel;
            var task  = algo.GenerateTask("testIdentifier", model.Object, CancellationToken.None);

            task.Wait();
            Assert.IsInstanceOf <Timetable>(task.Result);
        }
Esempio n. 27
0
        void ExecuteNullableSumFromEmptyTable(bool isSmart)
        {
            var dataModel = new TestDataModel {
                Settings = { IsSmart = isSmart }
            };
            int?sum = dataModel.DOOR_HANDLE.Sum(x => x.MATERIAL_ID);

            Assert.AreEqual(null, sum);
        }
Esempio n. 28
0
            public void update_calls_provider()
            {
                object        key           = 5;
                TestDataModel testDataModel = new TestDataModel();

                _dataService.Update(key, testDataModel);

                A.CallTo(() => _dataProvider.Execute(A <string> .Ignored, A <ParameterCollection> .Ignored, CommandType.Text, null)).MustHaveHappenedOnceExactly();
            }
Esempio n. 29
0
            public void All_creates_view_model()
            {
                TestDataModel testDataModel = new TestDataModel();

                A.CallTo(() => _dataProvider.All()).Returns(new[] { testDataModel });

                _dataService.All().ToList();

                A.CallTo(() => _modelFactory.CreateViewModel(testDataModel)).MustHaveHappenedOnceExactly();
            }
Esempio n. 30
0
            public void ByKey_creates_view_model()
            {
                TestDataModel testDataModel = new TestDataModel();
                const int     key           = 2;

                A.CallTo(() => _dataProvider.ByKey(key)).Returns(testDataModel);

                _dataService.ByKey(key);

                A.CallTo(() => _modelFactory.CreateViewModel(testDataModel)).MustHaveHappenedOnceExactly();
            }
Esempio n. 31
0
        public void Test()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };
            var door = new DOOR { CAR_ID = 1, DOOR_ID = 100};
            dataModel.DOOR.AddObject(door);
            dataModel.CAR.AddObject(new CAR {CAR_ID = 1, Doors = new EntityCollection<DOOR>(new []{door})});

            var carByDoor = dataModel.CAR.Where(car => car.Doors.Any(d => d.DOOR_ID == 100)).FirstOrDefault();

            Assert.NotNull(carByDoor);
        }
Esempio n. 32
0
        public void Sets_null_required_string_property_to_empty()
        {
            var testDataModel = new TestDataModel();

            Assert.IsNull(testDataModel.RequiredString);
            var result = DataStringPropertyHelper.ValidateString(testDataModel, m => m.RequiredString);

            Assert.AreEqual("", testDataModel.RequiredString);
            Assert.AreEqual("TestDataModel.RequiredString", result.PropertyName);
            Assert.True(result.SetRequiredToEmpty);
        }
Esempio n. 33
0
        public void Truncates_string_as_expected()
        {
            var testDataModel = new TestDataModel
            {
                TruncateMe = "TRUNCATE ME!"
            };
            var result = DataStringPropertyHelper.ValidateString(testDataModel, m => m.TruncateMe);

            Assert.AreEqual("TRUN", testDataModel.TruncateMe);
            Assert.AreEqual("TestDataModel.TruncateMe", result.PropertyName);
            Assert.AreEqual(4, result.TruncatedLength);
        }
Esempio n. 34
0
        public void Does_nothing_to_undecorated_string_property()
        {
            const string str           = "LEAVE ME ALONE!";
            var          testDataModel = new TestDataModel
            {
                LeaveMeAloneString = str
            };
            var result = DataStringPropertyHelper.ValidateString(testDataModel, m => m.LeaveMeAloneString);

            Assert.AreEqual(str, testDataModel.LeaveMeAloneString);
            Assert.Null(result);
        }
Esempio n. 35
0
        public void Test10()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };
            dataModel.CAR.AddObject(new CAR { CAR_ID = 1 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 1, DOOR_ID = 10 });

            var finalDoors =
                (from door in dataModel.DOOR
                 where (from door1 in dataModel.DOOR
                     select new { DoorId = door1.DOOR_ID, Cars = (from car in dataModel.CAR
                         select new { CAR_ID = (int?)car.CAR_ID }).Union(new[] { new { CAR_ID = (int?)null } }).Where(car => car.CAR_ID == door1.CAR_ID) }).Any(d => d.Cars.Any(c => c.CAR_ID == door.CAR_ID))
                 select door).ToList();

            Assert.AreEqual(1, finalDoors.Count);
        }
        public void WhenCouldNotMaterializeShouldThrow()
        {
            var dataModel = new TestDataModel {Settings = {IsSmart = true}};

            dataModel.CAR.AddObject(new CAR{CAR_ID = 1});

            var propertyType = typeof(DOOR).GetProperty(NameSelecter.GetMemberName<DOOR>(x => x.DOOR_ID)).PropertyType;
            Assert.False(propertyType.IsGenericType && propertyType.GetGenericTypeDefinition() == typeof(Nullable<>));

            var cars =
                   (from car in dataModel.CAR
                    join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                        into joinedDoor from door in joinedDoor.DefaultIfEmpty()
                    select new { car.CAR_ID, door.DOOR_ID });

            Assert.Throws<NullReferenceException>(() => cars.ToList()); //ORM couldn't materialize null to not-nullable door.DOOR_ID and throw an exception, so unit-test should throw too.
        }
Esempio n. 37
0
        void ExecuteTwoLeftJoins(bool isSmart)
        {
            var dataModel = new TestDataModel {Settings = {IsSmart = isSmart}};

            const int carId = 100;
            dataModel.CAR.AddObject(new CAR{CAR_ID = carId});
            dataModel.CAR.AddObject(new CAR{CAR_ID = carId + 1});

            var cars =
                (from car in dataModel.CAR
                join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                    into joinedDoor from door in joinedDoor.DefaultIfEmpty()
                join doorHandle in dataModel.DOOR_HANDLE on door.DOOR_ID equals doorHandle.DOOR_ID
                    into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                select car).ToList();

            Assert.AreEqual(2, cars.Count);
            Assert.AreEqual(carId, cars.First().CAR_ID);
        }
Esempio n. 38
0
        private void ExecuteGroupBy(bool isSmart)
        {
            var dataModel = new TestDataModel {Settings = {IsSmart = isSmart}};

            dataModel.DOOR.AddObject(new DOOR {DOOR_ID = 1});
            dataModel.DOOR.AddObject(new DOOR { DOOR_ID = 2 });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE { DOOR_HANDLE_ID = 1, DOOR_ID = 1, COLOR = "YELLOW" });

            var minIdDoors =
                (from door in dataModel.DOOR
                 join doorHandle in dataModel.DOOR_HANDLE on door.DOOR_ID equals doorHandle.DOOR_ID into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                 join doorHandle2 in dataModel.DOOR_HANDLE on doorHandle.DOOR_HANDLE_ID equals doorHandle2.DOOR_HANDLE_ID into joinedDoorHandle2 from doorHandle2 in joinedDoorHandle2.DefaultIfEmpty()
                 group new {doorHandle2, door} by doorHandle2.COLOR into groupedDoorHandle
                 select new {Id = groupedDoorHandle.Min(x => x.door.DOOR_ID), Color = groupedDoorHandle.Key }).ToList();

            Assert.AreEqual(1, minIdDoors.First().Id);
            Assert.AreEqual("YELLOW", minIdDoors.First().Color);
            Assert.AreEqual(null, minIdDoors[1].Color);
        }
Esempio n. 39
0
        public void ExecuteContains(bool isSmart)
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = isSmart } };

            new[]
            {
                new DOOR_HANDLE {DOOR_HANDLE_ID = 1, MATERIAL_ID = 1},
                new DOOR_HANDLE {DOOR_HANDLE_ID = 2, MATERIAL_ID = 2},
                new DOOR_HANDLE {DOOR_HANDLE_ID = 3}
            }
                .ForEach(dataModel.DOOR_HANDLE.AddObject);

            var doorHandleIds = new List<int>{1,2};

            var doorHandles =
                (from doorHandle in dataModel.DOOR_HANDLE
                where doorHandleIds.Contains(doorHandle.MATERIAL_ID.Value)
                select doorHandle).ToList();

            Assert.AreEqual(2, doorHandles.Count);
        }
Esempio n. 40
0
        void ExecuteSelect(bool isSmart)
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = isSmart } };

            dataModel.CAR.AddObject(new CAR {CAR_ID = 1});
            dataModel.CAR.AddObject(new CAR {CAR_ID = 2});
            dataModel.DOOR.AddObject(new DOOR {CAR_ID = 1, DOOR_ID = 1});
            dataModel.DOOR.AddObject(new DOOR {CAR_ID = 2, DOOR_ID = 2});
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE{DOOR_ID = 1, DOOR_HANDLE_ID = 1, COLOR = "RED"});

            var carsWithoutRedHandle =
                   (from car in dataModel.CAR
                    join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                            into joinedDoor from door in joinedDoor.DefaultIfEmpty()
                    join doorHandle in dataModel.DOOR_HANDLE on new {door.DOOR_ID} equals new {doorHandle.DOOR_ID}
                            into joinedDoorHandle from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                    where doorHandle.COLOR != "RED" || doorHandle == null
                    select car).ToList();

            Assert.AreEqual(1, carsWithoutRedHandle.Count);
            Assert.AreEqual(2, carsWithoutRedHandle.First().CAR_ID);
        }
Esempio n. 41
0
        public void Test2()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true }};
            dataModel.CAR.AddObject(new CAR {CAR_ID = 1} );
            dataModel.CAR.AddObject(new CAR {CAR_ID = 2} );

            var cars =
                (from car in dataModel.CAR
                select new {car.CAR_ID, Container = new Container{Id = car.CAR_ID, Id2 = car.CAR_ID + 1, SubContainer = new Container{Id = 5, SubContainer = new Container()}}}
                )
                .Where(x => x.Container.Id2 != 3)
                .ToList();

            var carExtended = cars.Single();

            Assert.AreEqual(1, carExtended.CAR_ID);
            Assert.AreEqual(1, carExtended.Container.Id);
            Assert.AreEqual(2, carExtended.Container.Id2);
            Assert.AreEqual(5, carExtended.Container.SubContainer.Id);
        }
Esempio n. 42
0
        public void Test3()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {DOOR_HANDLE_ID = 1, MATERIAL_ID = 1});

            var doorHandleIds = new List<int> { 1, 2 };

            var doorHandles =
                (from doorHandle in dataModel.DOOR_HANDLE
                 where doorHandleIds.Select(x => x).Select(x => x).Any()
                 select doorHandle).ToList();

            Assert.AreEqual(1, doorHandles.Count);
        }
Esempio n. 43
0
 public void Test4()
 {
     var dataModel = new TestDataModel {Settings = {IsSmart = true}};
     dataModel.CAR.Where(y => y.CAR_ID == dataModel.CAR.Select(x => x).Sum(x => x.CAR_ID)).ToList();
 }
Esempio n. 44
0
        public void Test5()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };

            dataModel.CAR.AddObject(new CAR { CAR_ID = 1 });
            dataModel.CAR.AddObject(new CAR { CAR_ID = 2 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 1, DOOR_ID = 1 });
            dataModel.DOOR.AddObject(new DOOR { CAR_ID = 2, DOOR_ID = 2 });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE { DOOR_ID = 1, DOOR_HANDLE_ID = 1, COLOR = "RED" });

            var carsWithoutRedHandle =
                   (from car in dataModel.CAR
                    join door in dataModel.DOOR on car.CAR_ID equals door.CAR_ID
                            into joinedDoor
                    from door in joinedDoor.DefaultIfEmpty()
                    join doorHandle in dataModel.DOOR_HANDLE on new { door.DOOR_ID } equals new { doorHandle.DOOR_ID }
                            into joinedDoorHandle
                    from doorHandle in joinedDoorHandle.DefaultIfEmpty()
                    where doorHandle.COLOR != "RED" || doorHandle == null
                    select new{car}).First();

            Assert.AreEqual(2, carsWithoutRedHandle.car.CAR_ID);
        }
Esempio n. 45
0
        public void Test7()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };
            dataModel.CAR.AddObject(new CAR { CAR_ID = 1 });
            dataModel.CAR.AddObject(new CAR { CAR_ID = 2 });

            var ids =
                (from car in dataModel.CAR
                 select new { Id = car.CAR_ID > 1 ? car.CAR_ID : -1 }
                )
                .ToList();

            Assert.AreEqual(2, ids.Count);
            Assert.AreEqual(-1, ids[0].Id);
            Assert.AreEqual(2, ids[1].Id);
        }
Esempio n. 46
0
        public void Test8()
        {
            var dataModel = new TestDataModel { Settings = { IsSmart = true } };
            dataModel.DOOR.AddObject(new DOOR { DOOR_ID = 100 });
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE {MATERIAL_ID = 100});
            dataModel.DOOR_HANDLE.AddObject(new DOOR_HANDLE());

            var handles =
                (from handle in dataModel.DOOR_HANDLE
                select new {Id = handle.MATERIAL_ID.Value});

            var doors =
                from door in dataModel.DOOR
                where handles.Any(handle => handle.Id == door.DOOR_ID)
                select door;

            Assert.AreEqual(1, doors.Count());
        }
 void ExecuteNullableSumFromEmptyTable(bool isSmart)
 {
     var dataModel = new TestDataModel { Settings = { IsSmart = isSmart } };
     int? sum = dataModel.DOOR_HANDLE.Sum(x => x.MATERIAL_ID);
     Assert.AreEqual(null, sum);
 }
 void ExecuteSumFromEmptyTable(bool isSmart)
 {
     var dataModel = new TestDataModel {Settings = {IsSmart = isSmart}};
     int sum = dataModel.CAR.Sum(x => x.CAR_ID);
 }