Как встроить автоматически воспроизводимое видео YouTube в iframe?

Я пытаюсь внедрить новую iframe-версию видео на YouTube и перевести его в автоигру.

Насколько я могу судить, это невозможно сделать, изменив флаги на URL. Есть ли способ сделать это с помощью JavaScript и API?

-121--582747- EF Repository pattern with Moq Я решил начать написание модульных тестов в нашем приложении. Он использует Entity Framework с образцом репозитория. Теперь я хочу начать тестирование логических классов, которые используют репозитории. Я предоставляю...

Я решил начать написание модульных тестов в нашем приложении. Он использует Entity Framework с образцом репозитория.

Теперь я хочу начать тестирование логических классов, которые используют репозитории. Приведу здесь простой пример.

Три из моих методов в классе GenericRepository:

public class GenericRepository : IRepository
{
    public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
    {
        var entityName = GetEntityName<TEntity>();
        return Context.CreateQuery<TEntity>(entityName);
    }
    private string GetEntityName<TEntity>() where TEntity : class
    {
        return typeof(TEntity).Name;
    }
    public IEnumerable<TEntity> Find<TEntity>(Expression<Func<TEntity, bool>> predicate) where TEntity : class
    {
        return GetQuery<TEntity>().Where(predicate).AsEnumerable();
    }
}

Простой логический класс, возвращающий отдельные годы из календарной таблицы в порядке убывания (да, я знаю, что слово calendar неправильно написано в нашем коде):

public class GetDistinctYearsFromCalendar
{
    private readonly IRepository _repository;

    public GetDistinctYearsFromCalendar()
    {
        _repository = new GenericRepository();
    }

    internal GetDistinctYearsFromCalendar(IRepository repository)
    {
        _repository = repository;
    }

    public int[] Get()
    {
        return _repository.Find<Calender_Tbl>(c => c.Year.HasValue).Select(c => c.Year.Value).Distinct().OrderBy(c => c).Reverse().ToArray();
    }
}

И вот мой первый тест:

[TestFixture]
public class GetDistinctYearsFromCalendarTest
{
    [Test]
    public void ReturnsDistinctDatesInCorrectOrder()
    {
        var repositoryMock = new Mock<IRepository>();

        repositoryMock.Setup(r => r.Find<Calender_Tbl>(c => c.Year.HasValue)).Returns(new List<Calender_Tbl>
        {
           new Calender_Tbl
              {
                  Date =
                      new DateTime(2010, 1, 1),
                  Year = 2010
              },
           new Calender_Tbl
              {
                  Date =
                      new DateTime(2010, 2, 1),
                  Year = 2010
              },
           new Calender_Tbl
              {
                  Date =
                      new DateTime(2011, 1, 1),
                  Year = 2011
              }
        }.AsQueryable());

        var getDistinct = new GetDistinctYearsFromCalendar(repositoryMock.Object).Get();

        Assert.AreEqual(2, getDistinct.Count(), "Returns more years than distinct.");
        Assert.AreEqual(2011, getDistinct[0], "Incorrect order, latest years not first.");
        Assert.AreEqual(2010, getDistinct[1], "Wrong year.");


    }
}

Это работает нормально. Но это не то, что я хочу сделать. Поскольку мне нужно настроить метод Find на имитационном объекте, я также должен знать, как он будет вызван в моем классе логики. Если я хочу сделать TDD, я не хочу возражать по этому поводу. Все, что я хочу знать, это какие сущности календаря должен предоставить мой репозиторий. Требуется настроить метод GetQuery. Так как

repositoryMock.Setup(r => r.GetQuery<Calender_Tbl>()).Returns(new List<Calender_Tbl>
{
  new Calender_Tbl
      {
          Date =
              new DateTime(2010, 1, 1),
          Year = 2010
      },
  new Calender_Tbl
      {
          Date =
              new DateTime(2010, 2, 1),
          Year = 2010
      },
  new Calender_Tbl
      {
          Date =
              new DateTime(2011, 1, 1),
          Year = 2011
      }
}.AsQueryable());

когда Find вызывает GetQuery внутри класса GenericRepository, он должен получить правильные сущности календаря, которые я настроил в GetQuery. Но это не работает конечно. Поскольку я не настроил метод Find своего имитационного объекта, я не получаю никаких сущностей.

Что же делать? Конечно, я мог бы использовать Moles или какие-то другие рамки, которые издеваются над всем, но я не хочу этого делать. Есть ли что-нибудь, что я могу сделать в разработке класса или теста для решения проблемы?

Это не конец света, если я должен пойти с моим текущим решением, но что, если год собственности превращается в не ничтожный int? Тогда, конечно, мне придется изменить свою реализацию в классе логики, но мне также придется изменить тест. Я хотел бы попытаться избежать этого.

6
задан Adam Plocher 19 October 2014 в 05:58
поделиться