Code Duplication    Length = 73-73 lines in 2 locations

eZ/Publish/API/Repository/Tests/SearchServiceTest.php 2 locations

@@ 2877-2949 (lines=73) @@
2874
     * @see \eZ\Publish\API\Repository\SearchService::findContent()
2875
     * @group maplocation
2876
     */
2877
    public function testMapLocationDistanceLessThanOrEqual()
2878
    {
2879
        $contentType = $this->createTestPlaceContentType();
2880
2881
        // Create a draft to account for behaviour with ContentType in different states
2882
        $repository = $this->getRepository();
2883
        $contentTypeService = $repository->getContentTypeService();
2884
        $contentService = $repository->getContentService();
2885
        $contentTypeService->createContentTypeDraft($contentType);
2886
2887
        $createStruct = $contentService->newContentCreateStruct($contentType, 'eng-GB');
2888
        $createStruct->alwaysAvailable = false;
2889
        $createStruct->mainLanguageCode = 'eng-GB';
2890
        $createStruct->setField(
2891
            'maplocation',
2892
            array(
2893
                'latitude' => 45.894877,
2894
                'longitude' => 15.972699,
2895
                'address' => 'Here be wild boars',
2896
            ),
2897
            'eng-GB'
2898
        );
2899
2900
        $draft = $contentService->createContent($createStruct);
2901
        $wildBoars = $contentService->publishVersion($draft->getVersionInfo());
2902
2903
        $createStruct = $contentService->newContentCreateStruct($contentType, 'eng-GB');
2904
        $createStruct->alwaysAvailable = false;
2905
        $createStruct->mainLanguageCode = 'eng-GB';
2906
        $createStruct->setField(
2907
            'maplocation',
2908
            array(
2909
                'latitude' => 45.927334,
2910
                'longitude' => 15.934847,
2911
                'address' => 'A lone tree',
2912
            ),
2913
            'eng-GB'
2914
        );
2915
2916
        $draft = $contentService->createContent($createStruct);
2917
        $tree = $contentService->publishVersion($draft->getVersionInfo());
2918
2919
        $this->refreshSearch($repository);
2920
2921
        $query = new Query(
2922
            array(
2923
                'filter' => new Criterion\LogicalAnd(
2924
                    array(
2925
                        new Criterion\ContentTypeId($contentType->id),
2926
                        new Criterion\MapLocationDistance(
2927
                            'maplocation',
2928
                            Criterion\Operator::LTE,
2929
                            240,
2930
                            43.756825,
2931
                            15.775074
2932
                        ),
2933
                    )
2934
                ),
2935
                'offset' => 0,
2936
                'limit' => 10,
2937
                'sortClauses' => array(),
2938
            )
2939
        );
2940
2941
        $searchService = $repository->getSearchService();
2942
        $result = $searchService->findContent($query);
2943
2944
        $this->assertEquals(1, $result->totalCount);
2945
        $this->assertEquals(
2946
            $wildBoars->id,
2947
            $result->searchHits[0]->valueObject->id
2948
        );
2949
    }
2950
2951
    /**
2952
     * Test for the findContent() method.
@@ 2957-3029 (lines=73) @@
2954
     * @see \eZ\Publish\API\Repository\SearchService::findContent()
2955
     * @group maplocation
2956
     */
2957
    public function testMapLocationDistanceGreaterThanOrEqual()
2958
    {
2959
        $contentType = $this->createTestPlaceContentType();
2960
2961
        // Create a draft to account for behaviour with ContentType in different states
2962
        $repository = $this->getRepository();
2963
        $contentTypeService = $repository->getContentTypeService();
2964
        $contentService = $repository->getContentService();
2965
        $contentTypeService->createContentTypeDraft($contentType);
2966
2967
        $createStruct = $contentService->newContentCreateStruct($contentType, 'eng-GB');
2968
        $createStruct->alwaysAvailable = false;
2969
        $createStruct->mainLanguageCode = 'eng-GB';
2970
        $createStruct->setField(
2971
            'maplocation',
2972
            array(
2973
                'latitude' => 45.894877,
2974
                'longitude' => 15.972699,
2975
                'address' => 'Here be wild boars',
2976
            ),
2977
            'eng-GB'
2978
        );
2979
2980
        $draft = $contentService->createContent($createStruct);
2981
        $wildBoars = $contentService->publishVersion($draft->getVersionInfo());
2982
2983
        $createStruct = $contentService->newContentCreateStruct($contentType, 'eng-GB');
2984
        $createStruct->alwaysAvailable = false;
2985
        $createStruct->mainLanguageCode = 'eng-GB';
2986
        $createStruct->setField(
2987
            'maplocation',
2988
            array(
2989
                'latitude' => 45.927334,
2990
                'longitude' => 15.934847,
2991
                'address' => 'A lone tree',
2992
            ),
2993
            'eng-GB'
2994
        );
2995
2996
        $draft = $contentService->createContent($createStruct);
2997
        $tree = $contentService->publishVersion($draft->getVersionInfo());
2998
2999
        $this->refreshSearch($repository);
3000
3001
        $query = new Query(
3002
            array(
3003
                'filter' => new Criterion\LogicalAnd(
3004
                    array(
3005
                        new Criterion\ContentTypeId($contentType->id),
3006
                        new Criterion\MapLocationDistance(
3007
                            'maplocation',
3008
                            Criterion\Operator::GTE,
3009
                            240,
3010
                            43.756825,
3011
                            15.775074
3012
                        ),
3013
                    )
3014
                ),
3015
                'offset' => 0,
3016
                'limit' => 10,
3017
                'sortClauses' => array(),
3018
            )
3019
        );
3020
3021
        $searchService = $repository->getSearchService();
3022
        $result = $searchService->findContent($query);
3023
3024
        $this->assertEquals(1, $result->totalCount);
3025
        $this->assertEquals(
3026
            $tree->id,
3027
            $result->searchHits[0]->valueObject->id
3028
        );
3029
    }
3030
3031
    /**
3032
     * Test for the findContent() method.