Skip to content

Commit

Permalink
Changes by CR
Browse files Browse the repository at this point in the history
  • Loading branch information
hvostya committed Feb 14, 2024
1 parent bf54819 commit 3b3f366
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,8 @@ private static void ProperCacheUpdateForOneObject(DataObjectCache dataObjectCach
DataObject masterFromActualCache = dataObjectCacheActual.GetLivingDataObject(currentMaster.GetType(), currentMaster.__PrimaryKey);

if (masterFromActualCache == null)
{ // Если мастера ранее не было в кэше, то просто его туда переносим.
{
// Если мастера ранее не было в кэше, то просто его туда переносим.
dataObjectCacheActual.AddDataObject(currentMaster);

// Но в добавленном мастере могут быть мастера 2 и далее уровней.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,12 @@ public BatchTest(CustomWebApplicationFactory<ODataServiceSample.AspNetCore.Start
/// <summary>
/// Test batch update of master-class with class at the same time.
/// It checks that dataobject cache is not crashed.
/// There are a master and object with link to master at batch request. Master is the first at the batch request. The link between object and master is not changed.
/// It is necessary that during batch processing master stay the same and is not overwriten.
/// </summary>
[Fact]
public void UpdateMasterAndClassTest()
{
/* Суть теста в том, что сначала в батч-запрос идёт мастер, а далее идёт сам объект со ссылкой на мастера.
* Ссылка на мастера не меняется при этом.
* Необходимо, чтобы при последовательной обработке батчей мастер не был перевычитан и его значение обновилось корректно.
*/
ActODataService(args =>
{
// Arrange.
Expand Down Expand Up @@ -118,17 +116,13 @@ public void UpdateMasterAndClassTest()
/// <summary>
/// Test batch update with inheritance.
/// It checks that dataobject cache is not crashed.
/// There are classes A, its detail B, that has descendant C. During class A loading its details are loaded too, but details are loaded by View of class B, while details are of class C.
/// Thus there are objects of type C at the cache while they are loaded by properties of class B only. That's why the state of details is LightLoaded.
/// It is necessary to post-load only propertues that are not loaded before (loaded properties can be changed).
/// </summary>
[Fact]
public void UpdateWithInheritanceAndDetailsTest()
{
/* Суть теста в том, что есть класс А, у него детейл Б, у которого есть наследник В.
* При загрузке объекта класса А подгрузятся его детейлы, однако они будут подгружены по представлению, которое соответствует классу Б, даже если детейлы класса В.
* Таким образом, в кэше окажутся объекты класса В, которые загружены только по свойствам Б. Раз не все свойства подгружены, то состояние LightLoaded.
* Догружать необходимо только те свойства, что ещё не загружались (потому что загруженные уже могут быть изменены).
*
* Необходимо, чтобы при последовательной обработке батча все значения обновились корректно.
*/
ActODataService(args =>
{
// Arrange.
Expand Down

0 comments on commit 3b3f366

Please sign in to comment.