Welcome to mirror list, hosted at ThFree Co, Russian Federation.

osm_editor_test.hpp « indexer_tests « indexer - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fe2b62e71d3538761ee601ec38b5b3f64dd2c985 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#pragma once

#include "generator/generator_tests_support/test_feature.hpp"
#include "generator/generator_tests_support/test_mwm_builder.hpp"

#include "platform/local_country_file_utils.hpp"

#include "storage/country_info_getter.hpp"

#include "indexer/mwm_set.hpp"

#include "map/feature_vec_model.hpp"

namespace editor
{
namespace testing
{
class EditorTest
{
public:
  EditorTest();
  ~EditorTest();

  void GetFeatureTypeInfoTest();
  void GetEditedFeatureTest();
  void SetIndexTest();
  void GetEditedFeatureStreetTest();
  void OriginalFeatureHasDefaultNameTest();
  void GetFeatureStatusTest();
  void IsFeatureUploadedTest();
  void DeleteFeatureTest();
  void ClearAllLocalEditsTest();
  void GetFeaturesByStatusTest();
  void OnMapDeregisteredTest();
  void RollBackChangesTest();
  void HaveMapEditsOrNotesToUploadTest();
  void HaveMapEditsToUploadTest();
  void GetStatsTest();
  void IsCreatedFeatureTest();
  void ForEachFeatureInMwmRectAndScaleTest();
  void CreateNoteTest();
  void LoadMapEditsTest();
  void SaveEditedFeatureTest();

private:
  template <typename TBuildFn>
  MwmSet::MwmId ConstructTestMwm(TBuildFn && fn)
  {
    return BuildMwm("TestCountry", forward<TBuildFn>(fn));
  }

  template <typename TBuildFn>
  MwmSet::MwmId BuildMwm(string const & name, TBuildFn && fn, int64_t version = 0)
  {
    m_mwmFiles.emplace_back(GetPlatform().WritableDir(), platform::CountryFile(name), version);
    auto & file = m_mwmFiles.back();
    Cleanup(file);

    {
      generator::tests_support::TestMwmBuilder builder(file, feature::DataHeader::country);
      fn(builder);
    }

    auto result = m_index.RegisterMap(file);
    CHECK_EQUAL(result.second, MwmSet::RegResult::Success, ());

    auto const & id = result.first;

    auto const & info = id.GetInfo();
    if (info)
      m_infoGetter.AddCountry(storage::CountryDef(name, info->m_limitRect));

    CHECK(id.IsAlive(), ());

    return id;
  }

  void Cleanup(platform::LocalCountryFile const & map);
  bool RemoveMwm(MwmSet::MwmId const & mwmId);

  Index m_index;
  storage::CountryInfoGetterForTesting m_infoGetter;
  vector<platform::LocalCountryFile> m_mwmFiles;
};
}  // namespace testing
}  // namespace editor