public void GetInitializedPropertiesTest() { var dObj = new DataObjectForTest { Name = "Вася" }; string[] expected = { Information.ExtractPropertyPath <DataObjectForTest>(x => x.Name), Information.ExtractPropertyPath <DataObjectForTest>(x => x.Height), Information.ExtractPropertyPath <DataObjectForTest>(x => x.BirthDate), Information.ExtractPropertyPath <DataObjectForTest>(x => x.Gender), Information.ExtractPropertyPath <DataObjectForTest>(x => x.__PrimaryKey) }; string[] actual = dObj.GetInitializedProperties(); Assert.True(EquivalenceMethods.EqualStringArrays(expected, actual)); var obj = new ClassWithCaptions(); string[] expected1 = { Information.ExtractPropertyPath <ClassWithCaptions>(x => x.InformationTestClass4), Information.ExtractPropertyPath <ClassWithCaptions>(x => x.__PrimaryKey) }; string[] actual1 = obj.GetInitializedProperties(); Assert.True(EquivalenceMethods.EqualStringArrays(expected1, actual1)); }
public void ToStringTest() { // Входной параметр: объект класса DataObjectForTest со свойствами Name = Кеша, Gender = false, Height = 170. var obj = new DataObjectForTest { Name = "Кеша", Gender = false, Height = 170 }; string actual = obj.ToString(); // Ожидаемый результат: строка "DataObjectForTest(Name=Кеша, Gender=False, Height=170)" Assert.Equal("DataObjectForTest(Gender=False, Height=170, Name=Кеша)", actual); // Добавляем объекту динамичемкие свойства. obj.DynamicProperties.Add("property1", new DataObjectForTest()); obj.DynamicProperties.Add("IntMasterProperty", "some string"); // Ожидаемый результат: строка "DataObjectForTest(Name=Кеша, Gender=False, Height=170,property1={ef52b97-dd64-4cf2-a5a8-2aed7a074420}, property3=somestring)" string actual1 = obj.ToString(); // Однакоко строки не эквиваленты засчёт того, что свойство property1 формируется динамически. Assert.NotEqual("DataObjectForTest(Name=Кеша, Gender=False, Height=170,property1={ef52b97-dd64-4cf2-a5a8-2aed7a074420}, property3=somestring)", actual1); // Берём метод ToString с параметрами Name, Height. string actual2 = obj.ToString(new[] { "Name", "Height" }); // Ожидаемый результат: строка "DataObjectForTest(Name=Кеша, Height=170)" Assert.Equal("DataObjectForTest(Height=170, Name=Кеша)", actual2); }
public void CopySysPropsArgumentExceptionTest() { var exception = Xunit.Record.Exception(() => { var dObj = new DataObjectForTest(); dObj.CopySysProps(null); }); Assert.IsType(typeof(ArgumentException), exception); }
public void KeyGenGenerateUniqueTest() { ICSSoft.STORMNET.DataObject dataObject = new DataObjectForTest(); // Установка флага уникального ключа в false. dataObject.PrimaryKeyIsUnique = false; var result = KeyGenerator.GenerateUnique(dataObject, null); // Проверка смены флага уникального ключа на true. Assert.Equal(true, dataObject.PrimaryKeyIsUnique); }
public void SetLoadingStateTest() { // Входной параметр: новый объект класса DataObjectForTest. var obj = new DataObjectForTest(); obj.SetLoadingState(LoadingState.Loaded); obj.SetLoadingState(LoadingState.NotLoaded); // Ожидаемый результат: сосотяние загрузки объекта = NotLoaded. Assert.True(obj.GetLoadingState() == LoadingState.NotLoaded); }
public void AddLoadedPropertiesNullReferenceExceptionTest() { var exception = Xunit.Record.Exception(() => { // Входной параметр: новый объект класса DataObjectForTest. var obj = new DataObjectForTest(); obj.AddLoadedProperties((string[])null); }); Assert.IsType(typeof(NullReferenceException), exception); }
public void UnlockObjectDifferentKeyExceptionTest() { var exception = Xunit.Record.Exception(() => { var dObj = new DataObjectForTest(); dObj.LockObject(666); dObj.UnLockObject(6); }); Assert.IsType(typeof(UnlockObjectDifferentKeyException), exception); }
public void SetDataCopyTest() { // Входной параметр: новый объект класса DataObjectForTest. var obj = new DataObjectForTest(); var obj1 = new DataObjectForTest(); obj.Name = "Семён"; obj.SetDataCopy(obj1); // Ожидаемый результат: подтверждение наличия внутренней копии у исходгного объекта данных. Assert.NotNull(obj.GetDataCopy()); }
public void UnLockObjectTest() { // Входной параметр: новый объект класса DataObjec4Test. var dObj = new DataObjectForTest(); dObj.LockObject(666); Assert.True(dObj.IsReadOnly); // Ожидаемый результат: объект сначала блокируется, потом блокировка снимается. dObj.UnLockObject(666); Assert.False(dObj.IsReadOnly); }
public void DisableInitDataCopyTest() { // Входной параметр: новый объект класса DataObjectForTest(). var dObj = new DataObjectForTest(); var result = new DataObjectForTest(); dObj.CopyTo(result, true, true, true); dObj.DisableInitDataCopy(); // Ожидаемый результат: несмотря на отключение инициализации копии данных у исходного объкекта, данные у исходного объекта и его копии эквивалентны. Assert.Equal(dObj.GetDataCopy(), result.GetDataCopy()); }
public void ClearPrototypingTest() { // Входные параметры: два объекта класса DataObjectForTest. var dObj = new DataObjectForTest(); var result = new DataObjectForTest(); dObj.Prototyping(); dObj.CopySysProps(result); dObj.ClearPrototyping(); // Ожидаемый результат: значение свойства __PrototypeKey у исходного объекта со снятой прототипизацией и копии исходного объекта не эквивалентны. Assert.NotEqual(dObj.__PrototypeKey, result.__PrototypeKey); }
public void IsReadOnlyTest() { // Входной параметр: новый объект класса DataObjec4Test. var dObj = new DataObjectForTest(); dObj.LockObject(null); // Ожидаемый результат: объект не залочен. Assert.False(dObj.IsReadOnly); dObj.LockObject(666); // Ожидаемый результат: объект залочен. Assert.True(dObj.IsReadOnly); }
public void GetInitializedPropertiesWithMasterTest() { // Входной параметр: объект класса DataObjectForTest. var dObj = new DataObjectForTest(); var actual = dObj.GetInitializedProperties(true); // Ожидаемый результат: массив строк {"Name", "Height", "BirthDate", "Gender", "_PrimaryKey"}. var expected = new string[] { "Name", "Height", "BirthDate", "Gender", "__PrimaryKey" }; Assert.True(EquivalenceMethods.EqualStringArrays(actual, expected)); var actual1 = dObj.GetInitializedProperties(false); Assert.True(EquivalenceMethods.EqualStringArrays(actual1, expected)); }
public void SetStatusTest() { // Входной параметр: новый объект класса DataObjectForTest. var obj = new DataObjectForTest(); obj.SetLoadingState(LoadingState.NotLoaded); obj.SetStatus(ObjectStatus.Deleted); obj.SetStatus(ObjectStatus.Altered); obj.SetStatus(ObjectStatus.Deleted); obj.SetStatus(ObjectStatus.UnAltered); // Ожидаемый результат: статус объекта = Created. Assert.True(obj.GetStatus() == ObjectStatus.Created); }
public void GetPresentationValueDelegateTest() { const string Expected = "MySuperPuperPresentationValue"; // Установим делегат для предоставления презентационного значения для объекта STORMNET.DataObject.GetPresentationValueDelegate = dataObject => Expected; // Вытащим презентационное значение для любого объекта var actual = new DataObjectForTest().GetPresentationValue(); Assert.Equal(Expected, actual); // Вернем на исходную делегат для предоставления презентационного значения для объекта STORMNET.DataObject.GetPresentationValueDelegate = null; }
public void CopySysPropsTest() { // Входной параметр: новый объект класса DataObjectForTest(). var dObj = new DataObjectForTest { Name = "Вася", __PrimaryKey = "C2EE01FC-1664-4005-AADB-968809E32E33" }; var result = new DataObjectForTest(); dObj.CopySysProps(result); result.GetInitializedProperties(); // Ожидаемый результат: значения поля __PrimaryKey у исходного и скопированого объектов совпадают, а значения поля Name - нет. Assert.Equal(dObj.__PrimaryKey, result.__PrimaryKey); Assert.NotEqual(dObj.Name, result.Name); }
/// <summary> /// Создаётся объект DataObjectForTest, вправляется ему новый гуид, Name присваивается в Вася, выполняется InitDataCopy и присваивается Height = 200 (Статус UnAltered). /// </summary> /// <returns> /// DataObjectForTest с новым гуидом, именем "Вася", ростом = 200. /// </returns> internal virtual STORMNET.DataObject CreateDataObject() { // TODO: Instantiate an appropriate concrete class. var target = new DataObjectForTest(); target.SetExistObjectPrimaryKey(Guid.NewGuid()); target.Name = "Вася"; target.InitDataCopy(); target.Height = 200; return(target); }
public void DynamicPropertiesTest() { // Входные параметры: новый объект типа DataObjectForTest, новый гуид. var dObj = new DataObjectForTest(); var g = new Guid("{C2EE01FC-1664-4005-AADB-968809E32E33}"); const string Key = "myProp"; dObj.DynamicProperties[Key] = g; object dp = dObj.DynamicProperties[Key]; Assert.Equal(g, dp); dObj.InitDataCopy(); object dp1 = dObj.DynamicProperties[Key]; Assert.Equal(g, dp1); }
public void InitDataCopyTest() { try { var obj = new DataObjectForTest(); obj.DisableInitDataCopy(); obj.InitDataCopy(); obj.GetDataCopy(); } catch { Assert.True(false, "Assert.Fail"); } // Ожидаемый результат: отсутствие исключений, возникающих при использовании метода InitDataCopy(). }
public void GetPresentationValueTest() { // Входной параметр: новый объект типа DataObjectForTest. var dObj = new DataObjectForTest(); // Ожидаемый результат: строка "DataObjectForTest(Gender=True, Height=0)" Assert.Equal(null, dObj.GetPresentationValue()); // Входной параметр: новый объект типа DataObjectForTest со значением свойств: Name="Поросенок Пётр", Gender=false. var dObj1 = new DataObjectForTest { Name = "Поросенок Пётр", Gender = false }; // Ожидаемый результат: "Поросенок Пётр" Assert.Equal("Поросенок Пётр", dObj1.GetPresentationValue()); }
public void CopyToObjectDataCopyTest() { // Входные параметры: два объекта класса DataObjectForTest. var source = (DataObjectForTest)CreateDataObject(); STORMNET.DataObject target = new DataObjectForTest(); // Ожидаемый результат: В объект target копируется объект source. source.CopyTo(target, true, true, true); target.InitDataCopy(); Assert.Equal(((DataObjectForTest)source.GetDataCopy()).Name, ((DataObjectForTest)target.GetDataCopy()).Name); ((DataObjectForTest)source.GetDataCopy()).Name = "Коля"; Assert.NotEqual(((DataObjectForTest)source.GetDataCopy()).Name, ((DataObjectForTest)target.GetDataCopy()).Name); Console.WriteLine(((DataObjectForTest)source.GetDataCopy()).Name + " " + ((DataObjectForTest)target.GetDataCopy()).Name); }
public void LockObjectTest() { var exception = Xunit.Record.Exception(() => { // Входной параметр: новый объект класса DataObjec4Test. var dObj = new DataObjectForTest(); // Ожидаемый результат: объект переведён в заблокирогванное состояние. dObj.LockObject(1); Assert.True(dObj.IsReadOnly); // Вызываем LockObject второй раз, но уже с другим ключом для того, чтобы выпало исключение. dObj.LockObject(2); }); Assert.IsType(typeof(DataObjectIsReadOnlyException), exception); }
public void SetStatusFromCreatedTest() { // Входной параметр: новый объкт класса DataObjectForTest. var source = new DataObjectForTest(); source.SetStatus(ObjectStatus.Altered); // Ожидаемый результат: изменение статуса объекта на Created. Assert.Equal(source.GetStatus(), ObjectStatus.Created); source.SetStatus(ObjectStatus.UnAltered); Assert.Equal(source.GetStatus(), ObjectStatus.Created); source.SetStatus(ObjectStatus.Created); Assert.Equal(source.GetStatus(), ObjectStatus.Created); source.SetStatus(ObjectStatus.Deleted); // Ожидаемый результат: изменение статуса объекта на Deleted. Assert.Equal(source.GetStatus(), ObjectStatus.Deleted); }