Use User model in a Lumen package












1















I wrote a Lumen package that make a reference to User Model.



I can't use IlluminateFoundationAuthUser because it doesn't exists with Lumen 5.7



I've made a config file that I publish, which give a reference to the User model that exists in the app. In this case:



my-config-plugin.php



'user' => [
'table' => 'users',
'primary_key' => 'id',
'foreign_key' => 'user_id',
'model' => AppUser::class,
],


so, in all my package, I use:



config('my-config-plugin.user.model') and it resolves to AppUser::class



But my problem comes with my tests, because there is no AppUser::class defined in my package, so all the tests fail.



So, the only solution I find is to define my tests in another Lumen project that will have a User model and will install the plugin, but I don't like very much to ave my tests in another repository. Am I missing the good way to do it?










share|improve this question

























  • Would mocking this class be an option for you?

    – Sven Hakvoort
    Jan 9 at 8:43











  • Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

    – Juliatzin del Toro
    Jan 9 at 17:27











  • Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

    – Sven Hakvoort
    Jan 10 at 8:00
















1















I wrote a Lumen package that make a reference to User Model.



I can't use IlluminateFoundationAuthUser because it doesn't exists with Lumen 5.7



I've made a config file that I publish, which give a reference to the User model that exists in the app. In this case:



my-config-plugin.php



'user' => [
'table' => 'users',
'primary_key' => 'id',
'foreign_key' => 'user_id',
'model' => AppUser::class,
],


so, in all my package, I use:



config('my-config-plugin.user.model') and it resolves to AppUser::class



But my problem comes with my tests, because there is no AppUser::class defined in my package, so all the tests fail.



So, the only solution I find is to define my tests in another Lumen project that will have a User model and will install the plugin, but I don't like very much to ave my tests in another repository. Am I missing the good way to do it?










share|improve this question

























  • Would mocking this class be an option for you?

    – Sven Hakvoort
    Jan 9 at 8:43











  • Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

    – Juliatzin del Toro
    Jan 9 at 17:27











  • Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

    – Sven Hakvoort
    Jan 10 at 8:00














1












1








1


1






I wrote a Lumen package that make a reference to User Model.



I can't use IlluminateFoundationAuthUser because it doesn't exists with Lumen 5.7



I've made a config file that I publish, which give a reference to the User model that exists in the app. In this case:



my-config-plugin.php



'user' => [
'table' => 'users',
'primary_key' => 'id',
'foreign_key' => 'user_id',
'model' => AppUser::class,
],


so, in all my package, I use:



config('my-config-plugin.user.model') and it resolves to AppUser::class



But my problem comes with my tests, because there is no AppUser::class defined in my package, so all the tests fail.



So, the only solution I find is to define my tests in another Lumen project that will have a User model and will install the plugin, but I don't like very much to ave my tests in another repository. Am I missing the good way to do it?










share|improve this question
















I wrote a Lumen package that make a reference to User Model.



I can't use IlluminateFoundationAuthUser because it doesn't exists with Lumen 5.7



I've made a config file that I publish, which give a reference to the User model that exists in the app. In this case:



my-config-plugin.php



'user' => [
'table' => 'users',
'primary_key' => 'id',
'foreign_key' => 'user_id',
'model' => AppUser::class,
],


so, in all my package, I use:



config('my-config-plugin.user.model') and it resolves to AppUser::class



But my problem comes with my tests, because there is no AppUser::class defined in my package, so all the tests fail.



So, the only solution I find is to define my tests in another Lumen project that will have a User model and will install the plugin, but I don't like very much to ave my tests in another repository. Am I missing the good way to do it?







laravel testing lumen






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 4 at 11:22







Juliatzin del Toro

















asked Jan 2 at 14:24









Juliatzin del ToroJuliatzin del Toro

5,0861261141




5,0861261141













  • Would mocking this class be an option for you?

    – Sven Hakvoort
    Jan 9 at 8:43











  • Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

    – Juliatzin del Toro
    Jan 9 at 17:27











  • Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

    – Sven Hakvoort
    Jan 10 at 8:00



















  • Would mocking this class be an option for you?

    – Sven Hakvoort
    Jan 9 at 8:43











  • Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

    – Juliatzin del Toro
    Jan 9 at 17:27











  • Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

    – Sven Hakvoort
    Jan 10 at 8:00

















Would mocking this class be an option for you?

– Sven Hakvoort
Jan 9 at 8:43





Would mocking this class be an option for you?

– Sven Hakvoort
Jan 9 at 8:43













Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

– Juliatzin del Toro
Jan 9 at 17:27





Maybe, but I am afraid not to understand well, mocking is to replace existing class, so if the class doesn't exists, I don't know how to do it

– Juliatzin del Toro
Jan 9 at 17:27













Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

– Sven Hakvoort
Jan 10 at 8:00





Take a look at this post: stackoverflow.com/questions/28125444/… it explains how you can create a fake representation of a non existing class by defining the methods on it, and after that using the normal mock workflow to let these methods always return the value you want for testing

– Sven Hakvoort
Jan 10 at 8:00












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54008040%2fuse-user-model-in-a-lumen-package%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54008040%2fuse-user-model-in-a-lumen-package%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

MongoDB - Not Authorized To Execute Command

in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

Npm cannot find a required file even through it is in the searched directory