Загрузка одного бизнес-объекта через свойства связанного бизнес-объекта - PullRequest
1 голос
/ 03 июня 2011

Я пытаюсь загрузить один бизнес-объект на основе свойств в связанном объекте. В этом случае есть ExtendedMaterial, который имеет одно отношение к материалу и заводу.

этот метод относится к классу AppServer. Когда я запускаю прикрепленный тест с этим кодом, я получаю правильный результат и прохожу тест, но если я раскомментирую строку Broker.GetBusinessObject<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode);

тогда я получаю исключение Habanero.Base.Exceptions.InvalidPropertyNameException : The given property name 'PlantCode' does not exist in the collection of properties for the class 'ExtendedMaterial'

Что я делаю не так?

    public ExtendedMaterial GetExtendedMaterial(string materialCode, string plantCode)
    {
      //  return Broker.GetBusinessObject<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode);
        return Broker.GetBusinessObjectCollection<ExtendedMaterial>("Plant.PlantCode LIKE " + plantCode).FirstOrDefault();

    }


    [Test]
    public void GetExtendedMaterial_WhenExists_ShouldReturnExtendedMaterial()
    {
        //---------------Set up test pack-------------------

        var material = CreateSavedMaterial();
        var plant = GetBOTestFactory<Plant>().CreateSavedBusinessObject();
        var extendedMaterial = CreateSavedExtendedMaterial(plant, material);
        IAppServer appServer = new AppServer(CreateDeviceManagerWithDevice());
        //---------------Assert Precondition----------------
        Assert.AreSame(plant, extendedMaterial.Plant);
        Assert.AreSame(material, extendedMaterial.Material);

        //---------------Execute Test ----------------------
        var actualExtendedMaterial = appServer.GetExtendedMaterial(material.Code, plant.PlantCode);
        //---------------Test Result -----------------------
        Assert.AreSame(extendedMaterial, actualExtendedMaterial);
    }

1 Ответ

3 голосов
/ 03 июня 2011

Это работает, если ваш DataAccessor является DataAccessorDB, но недавно я заметил, что в некоторых модульных тестах он не работает с DataAccessorInMemory. Попробуйте свой тест с использованием БД и посмотрите, работает ли это. Если это не так, пожалуйста, зарегистрируйте ошибку на http://redmine.habanerowiki.com/

...